user.go raw

   1  /**
   2   * Copyright 2016-2024 IBM Corp.
   3   *
   4   * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
   5   * the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
   6   *
   7   * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
   8   * on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   9   * See the License for the specific language governing permissions and limitations under the License.
  10   */
  11  
  12  // AUTOMATICALLY GENERATED CODE - DO NOT MODIFY
  13  
  14  package services
  15  
  16  import (
  17  	"fmt"
  18  	"strings"
  19  
  20  	"github.com/softlayer/softlayer-go/datatypes"
  21  	"github.com/softlayer/softlayer-go/session"
  22  	"github.com/softlayer/softlayer-go/sl"
  23  )
  24  
  25  // 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.
  26  type User_Customer struct {
  27  	Session session.SLSession
  28  	Options sl.Options
  29  }
  30  
  31  // GetUserCustomerService returns an instance of the User_Customer SoftLayer service
  32  func GetUserCustomerService(sess session.SLSession) User_Customer {
  33  	return User_Customer{Session: sess}
  34  }
  35  
  36  func (r User_Customer) Id(id int) User_Customer {
  37  	r.Options.Id = &id
  38  	return r
  39  }
  40  
  41  func (r User_Customer) Mask(mask string) User_Customer {
  42  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
  43  		mask = fmt.Sprintf("mask[%s]", mask)
  44  	}
  45  
  46  	r.Options.Mask = mask
  47  	return r
  48  }
  49  
  50  func (r User_Customer) Filter(filter string) User_Customer {
  51  	r.Options.Filter = filter
  52  	return r
  53  }
  54  
  55  func (r User_Customer) Limit(limit int) User_Customer {
  56  	r.Options.Limit = &limit
  57  	return r
  58  }
  59  
  60  func (r User_Customer) Offset(offset int) User_Customer {
  61  	r.Options.Offset = &offset
  62  	return r
  63  }
  64  
  65  // no documentation yet
  66  func (r User_Customer) AcknowledgeSupportPolicy() (err error) {
  67  	var resp datatypes.Void
  68  	err = r.Session.DoRequest("SoftLayer_User_Customer", "acknowledgeSupportPolicy", nil, &r.Options, &resp)
  69  	return
  70  }
  71  
  72  // Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the user's new API key. Each portal user is allowed only one API key.
  73  func (r User_Customer) AddApiAuthenticationKey() (resp string, err error) {
  74  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addApiAuthenticationKey", nil, &r.Options, &resp)
  75  	return
  76  }
  77  
  78  // 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.
  79  //
  80  // 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.
  81  func (r User_Customer) AddBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
  82  	params := []interface{}{
  83  		dedicatedHostIds,
  84  	}
  85  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkDedicatedHostAccess", params, &r.Options, &resp)
  86  	return
  87  }
  88  
  89  // 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.
  90  //
  91  // 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.
  92  func (r User_Customer) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
  93  	params := []interface{}{
  94  		hardwareIds,
  95  	}
  96  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkHardwareAccess", params, &r.Options, &resp)
  97  	return
  98  }
  99  
 100  // Add multiple permissions to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
 101  //
 102  // 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.
 103  //
 104  // 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.
 105  func (r User_Customer) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
 106  	params := []interface{}{
 107  		permissions,
 108  	}
 109  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkPortalPermission", params, &r.Options, &resp)
 110  	return
 111  }
 112  
 113  // no documentation yet
 114  func (r User_Customer) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
 115  	var resp datatypes.Void
 116  	params := []interface{}{
 117  		roles,
 118  	}
 119  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkRoles", params, &r.Options, &resp)
 120  	return
 121  }
 122  
 123  // 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.
 124  //
 125  // 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.
 126  func (r User_Customer) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
 127  	params := []interface{}{
 128  		virtualGuestIds,
 129  	}
 130  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkVirtualGuestAccess", params, &r.Options, &resp)
 131  	return
 132  }
 133  
 134  // 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.
 135  //
 136  // 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.
 137  //
 138  // Only the USER_MANAGE permission is required to execute this.
 139  func (r User_Customer) AddDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
 140  	params := []interface{}{
 141  		dedicatedHostId,
 142  	}
 143  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addDedicatedHostAccess", params, &r.Options, &resp)
 144  	return
 145  }
 146  
 147  // no documentation yet
 148  func (r User_Customer) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) {
 149  	params := []interface{}{
 150  		externalBinding,
 151  	}
 152  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addExternalBinding", params, &r.Options, &resp)
 153  	return
 154  }
 155  
 156  // 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.
 157  //
 158  // 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.
 159  //
 160  // Only the USER_MANAGE permission is required to execute this.
 161  func (r User_Customer) AddHardwareAccess(hardwareId *int) (resp bool, err error) {
 162  	params := []interface{}{
 163  		hardwareId,
 164  	}
 165  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addHardwareAccess", params, &r.Options, &resp)
 166  	return
 167  }
 168  
 169  // 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.
 170  func (r User_Customer) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) {
 171  	params := []interface{}{
 172  		notificationKeyName,
 173  	}
 174  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addNotificationSubscriber", params, &r.Options, &resp)
 175  	return
 176  }
 177  
 178  // Add a permission to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
 179  //
 180  // 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.
 181  //
 182  // 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.
 183  func (r User_Customer) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
 184  	params := []interface{}{
 185  		permission,
 186  	}
 187  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addPortalPermission", params, &r.Options, &resp)
 188  	return
 189  }
 190  
 191  // no documentation yet
 192  func (r User_Customer) AddRole(role *datatypes.User_Permission_Role) (err error) {
 193  	var resp datatypes.Void
 194  	params := []interface{}{
 195  		role,
 196  	}
 197  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addRole", params, &r.Options, &resp)
 198  	return
 199  }
 200  
 201  // 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.
 202  //
 203  // 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.
 204  //
 205  // Only the USER_MANAGE permission is required to execute this.
 206  func (r User_Customer) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
 207  	params := []interface{}{
 208  		virtualGuestId,
 209  	}
 210  	err = r.Session.DoRequest("SoftLayer_User_Customer", "addVirtualGuestAccess", params, &r.Options, &resp)
 211  	return
 212  }
 213  
 214  // This method can be used in place of [[SoftLayer_User_Customer::editObject]] to change the parent user of this user.
 215  //
 216  // The new parent must be a user on the same account, and must not be a child of this user.  A user is not allowed to change their own parent.
 217  //
 218  // If the cascadeFlag is set to false, then an exception will be thrown if the new parent does not have all of the permissions that this user possesses.  If the cascadeFlag is set to true, then permissions will be removed from this user and the descendants of this user as necessary so that no children of the parent will have permissions that the parent does not possess. However, setting the cascadeFlag to true will not remove the access all device permissions from this user. The customer portal will need to be used to remove these permissions.
 219  func (r User_Customer) AssignNewParentId(parentId *int, cascadePermissionsFlag *bool) (resp datatypes.User_Customer, err error) {
 220  	params := []interface{}{
 221  		parentId,
 222  		cascadePermissionsFlag,
 223  	}
 224  	err = r.Session.DoRequest("SoftLayer_User_Customer", "assignNewParentId", params, &r.Options, &resp)
 225  	return
 226  }
 227  
 228  // 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.
 229  func (r User_Customer) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) {
 230  	params := []interface{}{
 231  		preferenceTypeKeyName,
 232  		value,
 233  	}
 234  	err = r.Session.DoRequest("SoftLayer_User_Customer", "changePreference", params, &r.Options, &resp)
 235  	return
 236  }
 237  
 238  // Create a new subscriber for a given resource.
 239  func (r User_Customer) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
 240  	params := []interface{}{
 241  		keyName,
 242  		resourceTableId,
 243  	}
 244  	err = r.Session.DoRequest("SoftLayer_User_Customer", "createNotificationSubscriber", params, &r.Options, &resp)
 245  	return
 246  }
 247  
 248  // Create a new user in the SoftLayer customer portal. It is not possible to set up SLL 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.
 249  //
 250  // An account's master user and sub-users who have the User Manage permission can add new users.
 251  //
 252  // Users are created with a default permission set. After adding a user it may be helpful to set their permissions and device access.
 253  //
 254  // secondaryPasswordTimeoutDays will be set to the system configured default value if the attribute is not provided or the attribute is not a valid value.
 255  //
 256  // Note, neither password nor vpnPassword parameters are required.
 257  //
 258  // 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.
 259  //
 260  // 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.
 261  //
 262  // 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.
 263  //
 264  // The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users.
 265  //
 266  // 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.
 267  //
 268  // IBMid considerations When a SoftLayer account is linked to a Platform Services (PaaS, formerly Bluemix) account, AND the trait on the SoftLayer Account indicating IBMid authentication is set, then SoftLayer will delegate the creation of an ACTIVE user to PaaS. This means that even though the request to create a new user in such an account may start at the IMS API, via this delegation we effectively turn it into a request that is driven by PaaS. In particular this means that any "invitation email" that comes to the user, will come from PaaS, not from IMS via IBMid.
 269  //
 270  // Users created in states other than ACTIVE (for example, a VPN_ONLY user) will be created directly in IMS without delegation (but note that no invitation is sent for a user created in any state other than ACTIVE).
 271  func (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'.
 282  func (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.
 292  func (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.
 302  func (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.
 311  func (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
 320  func (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.
 331  func (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
 337  func (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.
 343  func (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.
 349  func (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
 355  func (r User_Customer) GetAgentImpersonationToken() (resp string, err error) {
 356  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAgentImpersonationToken", nil, &r.Options, &resp)
 357  	return
 358  }
 359  
 360  // no documentation yet
 361  func (r User_Customer) GetAllowedDedicatedHostIds() (resp []int, err error) {
 362  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedDedicatedHostIds", nil, &r.Options, &resp)
 363  	return
 364  }
 365  
 366  // no documentation yet
 367  func (r User_Customer) GetAllowedHardwareIds() (resp []int, err error) {
 368  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedHardwareIds", nil, &r.Options, &resp)
 369  	return
 370  }
 371  
 372  // no documentation yet
 373  func (r User_Customer) GetAllowedVirtualGuestIds() (resp []int, err error) {
 374  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedVirtualGuestIds", nil, &r.Options, &resp)
 375  	return
 376  }
 377  
 378  // Retrieve A portal user's API Authentication keys. There is a max limit of one API key per user.
 379  func (r User_Customer) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) {
 380  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getApiAuthenticationKeys", nil, &r.Options, &resp)
 381  	return
 382  }
 383  
 384  // This method generate user authentication token and return [[SoftLayer_Container_User_Authentication_Token]] object which will be used to authenticate user to login to SoftLayer customer portal.
 385  func (r User_Customer) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) {
 386  	params := []interface{}{
 387  		token,
 388  	}
 389  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAuthenticationToken", params, &r.Options, &resp)
 390  	return
 391  }
 392  
 393  // Retrieve A portal user's child users. Some portal users may not have child users.
 394  func (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.
 400  func (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.
 406  func (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 method is not applicable to legacy SoftLayer-authenticated users and can only be invoked for IBMid-authenticated users.
 412  func (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.
 421  func (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.
 427  func (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.
 433  func (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'.
 439  func (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.
 445  func (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.
 451  func (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.
 457  func (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 virtual guests on their account.
 463  func (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  // Retrieve Specifically relating the Customer instance to an IBMid. A Customer instance may or may not have an IBMid link.
 469  func (r User_Customer) GetIbmIdLink() (resp datatypes.User_Customer_Link, err error) {
 470  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getIbmIdLink", nil, &r.Options, &resp)
 471  	return
 472  }
 473  
 474  // no documentation yet
 475  func (r User_Customer) GetImpersonationToken() (resp string, err error) {
 476  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getImpersonationToken", nil, &r.Options, &resp)
 477  	return
 478  }
 479  
 480  // Retrieve Contains the definition of the layout profile.
 481  func (r User_Customer) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) {
 482  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLayoutProfiles", nil, &r.Options, &resp)
 483  	return
 484  }
 485  
 486  // Retrieve A user's locale. Locale holds user's language and region information.
 487  func (r User_Customer) GetLocale() (resp datatypes.Locale, err error) {
 488  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLocale", nil, &r.Options, &resp)
 489  	return
 490  }
 491  
 492  // Retrieve A user's attempts to log into the SoftLayer customer portal.
 493  func (r User_Customer) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) {
 494  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginAttempts", nil, &r.Options, &resp)
 495  	return
 496  }
 497  
 498  // 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.
 499  func (r User_Customer) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) {
 500  	params := []interface{}{
 501  		request,
 502  	}
 503  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginToken", params, &r.Options, &resp)
 504  	return
 505  }
 506  
 507  // 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.
 508  func (r User_Customer) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) {
 509  	params := []interface{}{
 510  		providerType,
 511  	}
 512  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getMappedAccounts", params, &r.Options, &resp)
 513  	return
 514  }
 515  
 516  // Retrieve Notification subscription records for the user.
 517  func (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.
 523  func (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.
 529  func (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.
 535  func (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.
 541  func (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.
 547  func (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  // no documentation yet
 553  func (r User_Customer) GetPasswordRequirements(isVpn *bool) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
 554  	params := []interface{}{
 555  		isVpn,
 556  	}
 557  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPasswordRequirements", params, &r.Options, &resp)
 558  	return
 559  }
 560  
 561  // Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API.
 562  func (r User_Customer) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
 563  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPermissions", nil, &r.Options, &resp)
 564  	return
 565  }
 566  
 567  // 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.
 568  func (r User_Customer) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
 569  	params := []interface{}{
 570  		username,
 571  		password,
 572  		securityQuestionId,
 573  		securityQuestionAnswer,
 574  	}
 575  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPortalLoginToken", params, &r.Options, &resp)
 576  	return
 577  }
 578  
 579  // 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.
 580  func (r User_Customer) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) {
 581  	params := []interface{}{
 582  		preferenceTypeKeyName,
 583  	}
 584  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreference", params, &r.Options, &resp)
 585  	return
 586  }
 587  
 588  // 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.
 589  func (r User_Customer) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) {
 590  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferenceTypes", nil, &r.Options, &resp)
 591  	return
 592  }
 593  
 594  // Retrieve Data type contains a single user preference to a specific preference type.
 595  func (r User_Customer) GetPreferences() (resp []datatypes.User_Preference, err error) {
 596  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferences", nil, &r.Options, &resp)
 597  	return
 598  }
 599  
 600  // Retrieve the authentication requirements for an outstanding password set/reset request.  The requirements returned in the same SoftLayer_Container_User_Customer_PasswordSet container which is provided as a parameter into this request.  The SoftLayer_Container_User_Customer_PasswordSet::authenticationMethods array will contain an entry for each authentication method required for the user.  See SoftLayer_Container_User_Customer_PasswordSet for more details.
 601  //
 602  // If the user has required authentication methods, then authentication information will be supplied to the SoftLayer_User_Customer::processPasswordSetRequest method within this same SoftLayer_Container_User_Customer_PasswordSet container.  All existing information in the container must continue to exist in the container to complete the password set/reset process.
 603  func (r User_Customer) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
 604  	params := []interface{}{
 605  		passwordSet,
 606  	}
 607  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getRequirementsForPasswordSet", params, &r.Options, &resp)
 608  	return
 609  }
 610  
 611  // Retrieve
 612  func (r User_Customer) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
 613  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getRoles", nil, &r.Options, &resp)
 614  	return
 615  }
 616  
 617  // 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.
 618  func (r User_Customer) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) {
 619  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSecurityAnswers", nil, &r.Options, &resp)
 620  	return
 621  }
 622  
 623  // Retrieve A user's notification subscription records.
 624  func (r User_Customer) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) {
 625  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSubscribers", nil, &r.Options, &resp)
 626  	return
 627  }
 628  
 629  // Retrieve A user's successful attempts to log into the SoftLayer customer portal.
 630  func (r User_Customer) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
 631  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSuccessfulLogins", nil, &r.Options, &resp)
 632  	return
 633  }
 634  
 635  // Retrieve Whether or not a user is required to acknowledge the support policy for portal access.
 636  func (r User_Customer) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) {
 637  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp)
 638  	return
 639  }
 640  
 641  // no documentation yet
 642  func (r User_Customer) GetSupportPolicyDocument() (resp []byte, err error) {
 643  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyDocument", nil, &r.Options, &resp)
 644  	return
 645  }
 646  
 647  // no documentation yet
 648  func (r User_Customer) GetSupportPolicyName() (resp string, err error) {
 649  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyName", nil, &r.Options, &resp)
 650  	return
 651  }
 652  
 653  // no documentation yet
 654  func (r User_Customer) GetSupportedLocales() (resp []datatypes.Locale, err error) {
 655  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportedLocales", nil, &r.Options, &resp)
 656  	return
 657  }
 658  
 659  // Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal.
 660  func (r User_Customer) GetSurveyRequiredFlag() (resp bool, err error) {
 661  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveyRequiredFlag", nil, &r.Options, &resp)
 662  	return
 663  }
 664  
 665  // Retrieve The surveys that a user has taken in the SoftLayer customer portal.
 666  func (r User_Customer) GetSurveys() (resp []datatypes.Survey, err error) {
 667  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveys", nil, &r.Options, &resp)
 668  	return
 669  }
 670  
 671  // Retrieve An user's associated tickets.
 672  func (r User_Customer) GetTickets() (resp []datatypes.Ticket, err error) {
 673  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getTickets", nil, &r.Options, &resp)
 674  	return
 675  }
 676  
 677  // Retrieve A portal user's time zone.
 678  func (r User_Customer) GetTimezone() (resp datatypes.Locale_Timezone, err error) {
 679  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getTimezone", nil, &r.Options, &resp)
 680  	return
 681  }
 682  
 683  // Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal.
 684  func (r User_Customer) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
 685  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUnsuccessfulLogins", nil, &r.Options, &resp)
 686  	return
 687  }
 688  
 689  // Retrieve a user id using a password token provided to the user in an email generated by the SoftLayer_User_Customer::initiatePortalPasswordChange request. Password recovery keys are valid for 24 hours after they're generated.
 690  //
 691  // 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.  Once the user id is known, then the SoftLayer_User_Customer object can be retrieved which is necessary to complete the process to set or reset a user's password.
 692  func (r User_Customer) GetUserIdForPasswordSet(key *string) (resp int, err error) {
 693  	params := []interface{}{
 694  		key,
 695  	}
 696  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserIdForPasswordSet", params, &r.Options, &resp)
 697  	return
 698  }
 699  
 700  // Retrieve User customer link with IBMid and IAMid.
 701  func (r User_Customer) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) {
 702  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserLinks", nil, &r.Options, &resp)
 703  	return
 704  }
 705  
 706  // no documentation yet
 707  func (r User_Customer) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) {
 708  	params := []interface{}{
 709  		profileName,
 710  		containerKeyname,
 711  	}
 712  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserPreferences", params, &r.Options, &resp)
 713  	return
 714  }
 715  
 716  // Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network.
 717  func (r User_Customer) GetUserStatus() (resp datatypes.User_Customer_Status, err error) {
 718  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserStatus", nil, &r.Options, &resp)
 719  	return
 720  }
 721  
 722  // 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.
 723  func (r User_Customer) GetVirtualGuestCount() (resp int, err error) {
 724  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuestCount", nil, &r.Options, &resp)
 725  	return
 726  }
 727  
 728  // 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.
 729  func (r User_Customer) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) {
 730  	err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuests", nil, &r.Options, &resp)
 731  	return
 732  }
 733  
 734  // no documentation yet
 735  func (r User_Customer) InTerminalStatus() (resp bool, err error) {
 736  	err = r.Session.DoRequest("SoftLayer_User_Customer", "inTerminalStatus", nil, &r.Options, &resp)
 737  	return
 738  }
 739  
 740  // 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.
 741  //
 742  // 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.
 743  //
 744  // Due to security reasons, the number of reset requests per username are limited within a undisclosed timeframe.
 745  func (r User_Customer) InitiatePortalPasswordChange(username *string) (resp bool, err error) {
 746  	params := []interface{}{
 747  		username,
 748  	}
 749  	err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChange", params, &r.Options, &resp)
 750  	return
 751  }
 752  
 753  // 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.
 754  func (r User_Customer) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) {
 755  	params := []interface{}{
 756  		username,
 757  	}
 758  	err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp)
 759  	return
 760  }
 761  
 762  // Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error.
 763  func (r User_Customer) InviteUserToLinkOpenIdConnect(providerType *string) (err error) {
 764  	var resp datatypes.Void
 765  	params := []interface{}{
 766  		providerType,
 767  	}
 768  	err = r.Session.DoRequest("SoftLayer_User_Customer", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp)
 769  	return
 770  }
 771  
 772  // 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.
 773  // Deprecated: This function has been marked as deprecated.
 774  func (r User_Customer) IsMasterUser() (resp bool, err error) {
 775  	err = r.Session.DoRequest("SoftLayer_User_Customer", "isMasterUser", nil, &r.Options, &resp)
 776  	return
 777  }
 778  
 779  // Determine if a string is the given user's login password to the SoftLayer customer portal.
 780  func (r User_Customer) IsValidPortalPassword(password *string) (resp bool, err error) {
 781  	params := []interface{}{
 782  		password,
 783  	}
 784  	err = r.Session.DoRequest("SoftLayer_User_Customer", "isValidPortalPassword", params, &r.Options, &resp)
 785  	return
 786  }
 787  
 788  // 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.
 789  func (r User_Customer) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
 790  	params := []interface{}{
 791  		authenticationContainer,
 792  	}
 793  	err = r.Session.DoRequest("SoftLayer_User_Customer", "performExternalAuthentication", params, &r.Options, &resp)
 794  	return
 795  }
 796  
 797  // 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 request. Password recovery keys are valid for 24 hours after they're generated.
 798  //
 799  // If the user has required authentication methods as specified by in the SoftLayer_Container_User_Customer_PasswordSet container returned from the SoftLayer_User_Customer::getRequirementsForPasswordSet request, then additional requests must be made to processPasswordSetRequest to authenticate the user before changing the password.  First, if the user has security questions set on their profile, they will be required to answer one of their questions correctly. Next, if the user has Verisign or Google Authentication on their account, they must authenticate according to the two-factor provider.  All of this authentication is done using the SoftLayer_Container_User_Customer_PasswordSet container.
 800  //
 801  // User portal passwords must match the following restrictions. Portal passwords must...
 802  // * ...be over eight characters long.
 803  // * ...be under twenty characters long.
 804  // * ...contain at least one uppercase letter
 805  // * ...contain at least one lowercase letter
 806  // * ...contain at least one number
 807  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
 808  // * ...not match your username
 809  func (r User_Customer) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
 810  	params := []interface{}{
 811  		passwordSet,
 812  		authenticationContainer,
 813  	}
 814  	err = r.Session.DoRequest("SoftLayer_User_Customer", "processPasswordSetRequest", params, &r.Options, &resp)
 815  	return
 816  }
 817  
 818  // 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.
 819  //
 820  // 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.
 821  func (r User_Customer) RemoveAllDedicatedHostAccessForThisUser() (resp bool, err error) {
 822  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllDedicatedHostAccessForThisUser", nil, &r.Options, &resp)
 823  	return
 824  }
 825  
 826  // 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.
 827  //
 828  // 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.
 829  func (r User_Customer) RemoveAllHardwareAccessForThisUser() (resp bool, err error) {
 830  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp)
 831  	return
 832  }
 833  
 834  // 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.
 835  //
 836  // 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.
 837  func (r User_Customer) RemoveAllVirtualAccessForThisUser() (resp bool, err error) {
 838  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp)
 839  	return
 840  }
 841  
 842  // Remove a user's API authentication key, removing that user's access to query the SoftLayer API.
 843  func (r User_Customer) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) {
 844  	params := []interface{}{
 845  		keyId,
 846  	}
 847  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeApiAuthenticationKey", params, &r.Options, &resp)
 848  	return
 849  }
 850  
 851  // 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.
 852  //
 853  // 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.
 854  //
 855  // If the user has full dedicatedHost access, then it will provide access to "ALL but passed in" dedicatedHost ids.
 856  func (r User_Customer) RemoveBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
 857  	params := []interface{}{
 858  		dedicatedHostIds,
 859  	}
 860  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkDedicatedHostAccess", params, &r.Options, &resp)
 861  	return
 862  }
 863  
 864  // 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 to remove then removeBulkHardwareAccess() returns true.
 865  //
 866  // 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.
 867  //
 868  // If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids.
 869  func (r User_Customer) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
 870  	params := []interface{}{
 871  		hardwareIds,
 872  	}
 873  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkHardwareAccess", params, &r.Options, &resp)
 874  	return
 875  }
 876  
 877  // Remove (revoke) multiple permissions from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
 878  //
 879  // Users can grant or revoke permissions to their child users, but not to themselves. An account's master has all portal permissions and can grant permissions for any of the other users on their account.
 880  //
 881  // If the cascadePermissionsFlag is set to true, then removing the permissions from a user will cascade down the child hierarchy and remove the permissions from this user along with all child users who also have the permission.
 882  //
 883  // If the cascadePermissionsFlag is not provided or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
 884  //
 885  // 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.
 886  func (r User_Customer) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
 887  	params := []interface{}{
 888  		permissions,
 889  		cascadePermissionsFlag,
 890  	}
 891  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkPortalPermission", params, &r.Options, &resp)
 892  	return
 893  }
 894  
 895  // no documentation yet
 896  func (r User_Customer) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
 897  	var resp datatypes.Void
 898  	params := []interface{}{
 899  		roles,
 900  	}
 901  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkRoles", params, &r.Options, &resp)
 902  	return
 903  }
 904  
 905  // 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.
 906  //
 907  // 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.
 908  func (r User_Customer) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
 909  	params := []interface{}{
 910  		virtualGuestIds,
 911  	}
 912  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkVirtualGuestAccess", params, &r.Options, &resp)
 913  	return
 914  }
 915  
 916  // 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.
 917  //
 918  // 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.
 919  func (r User_Customer) RemoveDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
 920  	params := []interface{}{
 921  		dedicatedHostId,
 922  	}
 923  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeDedicatedHostAccess", params, &r.Options, &resp)
 924  	return
 925  }
 926  
 927  // no documentation yet
 928  func (r User_Customer) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) {
 929  	params := []interface{}{
 930  		externalBinding,
 931  	}
 932  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeExternalBinding", params, &r.Options, &resp)
 933  	return
 934  }
 935  
 936  // 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.
 937  //
 938  // 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.
 939  func (r User_Customer) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) {
 940  	params := []interface{}{
 941  		hardwareId,
 942  	}
 943  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeHardwareAccess", params, &r.Options, &resp)
 944  	return
 945  }
 946  
 947  // Remove (revoke) a permission from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
 948  //
 949  // 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.
 950  //
 951  // If the cascadePermissionsFlag is set to true, then removing the permission from a user will cascade down the child hierarchy and remove the permission from this user and all child users who also have the permission.
 952  //
 953  // If the cascadePermissionsFlag is not set or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
 954  //
 955  // 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.
 956  func (r User_Customer) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
 957  	params := []interface{}{
 958  		permission,
 959  		cascadePermissionsFlag,
 960  	}
 961  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removePortalPermission", params, &r.Options, &resp)
 962  	return
 963  }
 964  
 965  // no documentation yet
 966  func (r User_Customer) RemoveRole(role *datatypes.User_Permission_Role) (err error) {
 967  	var resp datatypes.Void
 968  	params := []interface{}{
 969  		role,
 970  	}
 971  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeRole", params, &r.Options, &resp)
 972  	return
 973  }
 974  
 975  // no documentation yet
 976  func (r User_Customer) RemoveSecurityAnswers() (resp bool, err error) {
 977  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeSecurityAnswers", nil, &r.Options, &resp)
 978  	return
 979  }
 980  
 981  // 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.
 982  //
 983  // 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.
 984  func (r User_Customer) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
 985  	params := []interface{}{
 986  		virtualGuestId,
 987  	}
 988  	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeVirtualGuestAccess", params, &r.Options, &resp)
 989  	return
 990  }
 991  
 992  // This method will change the IBMid that a SoftLayer user is linked to, if we need to do that for some reason. It will do this by modifying the link to the desired new IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is already Bluemix linked. To reset a link for the Bluemix-linked user account, use resetOpenIdConnectLinkUnifiedUserManagementMode.
 993  func (r User_Customer) ResetOpenIdConnectLink(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
 994  	var resp datatypes.Void
 995  	params := []interface{}{
 996  		providerType,
 997  		newIbmIdUsername,
 998  		removeSecuritySettings,
 999  	}
1000  	err = r.Session.DoRequest("SoftLayer_User_Customer", "resetOpenIdConnectLink", params, &r.Options, &resp)
1001  	return
1002  }
1003  
1004  // This method will change the IBMid that a SoftLayer master user is linked to, if we need to do that for some reason. It will do this by unlinking the new owner IBMid from its current user association in this account, if there is one (note that the new owner IBMid is not required to already be a member of the IMS account). Then it will modify the existing IBMid link for the master user to use the new owner IBMid-realm IAMid. At this point, if the new owner IBMid isn't already a member of the PaaS account, it will attempt to add it. As a last step, it will call PaaS to modify the owner on that side, if necessary.  Only when all those steps are complete, it will commit the IMS-side DB changes.  Then, it will clean up the SoftLayer user that was linked to the new owner IBMid (this user became unlinked as the first step in this process).  It will also call BSS to delete the old owner IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is not Bluemix linked. To reset a link for the user account not linked to Bluemix, use resetOpenIdConnectLink.
1005  func (r User_Customer) ResetOpenIdConnectLinkUnifiedUserManagementMode(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
1006  	var resp datatypes.Void
1007  	params := []interface{}{
1008  		providerType,
1009  		newIbmIdUsername,
1010  		removeSecuritySettings,
1011  	}
1012  	err = r.Session.DoRequest("SoftLayer_User_Customer", "resetOpenIdConnectLinkUnifiedUserManagementMode", params, &r.Options, &resp)
1013  	return
1014  }
1015  
1016  // no documentation yet
1017  func (r User_Customer) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
1018  	params := []interface{}{
1019  		accountId,
1020  		samlResponse,
1021  	}
1022  	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlAuthenticate", params, &r.Options, &resp)
1023  	return
1024  }
1025  
1026  // no documentation yet
1027  func (r User_Customer) SamlBeginAuthentication(accountId *int) (resp string, err error) {
1028  	params := []interface{}{
1029  		accountId,
1030  	}
1031  	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginAuthentication", params, &r.Options, &resp)
1032  	return
1033  }
1034  
1035  // no documentation yet
1036  func (r User_Customer) SamlBeginLogout() (resp string, err error) {
1037  	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginLogout", nil, &r.Options, &resp)
1038  	return
1039  }
1040  
1041  // no documentation yet
1042  func (r User_Customer) SamlLogout(samlResponse *string) (err error) {
1043  	var resp datatypes.Void
1044  	params := []interface{}{
1045  		samlResponse,
1046  	}
1047  	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlLogout", params, &r.Options, &resp)
1048  	return
1049  }
1050  
1051  // no documentation yet
1052  func (r User_Customer) SelfPasswordChange(currentPassword *string, newPassword *string) (err error) {
1053  	var resp datatypes.Void
1054  	params := []interface{}{
1055  		currentPassword,
1056  		newPassword,
1057  	}
1058  	err = r.Session.DoRequest("SoftLayer_User_Customer", "selfPasswordChange", params, &r.Options, &resp)
1059  	return
1060  }
1061  
1062  // 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.
1063  func (r User_Customer) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) {
1064  	params := []interface{}{
1065  		providerType,
1066  		accountId,
1067  	}
1068  	err = r.Session.DoRequest("SoftLayer_User_Customer", "setDefaultAccount", params, &r.Options, &resp)
1069  	return
1070  }
1071  
1072  // 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.
1073  func (r User_Customer) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) {
1074  	params := []interface{}{
1075  		providerType,
1076  	}
1077  	err = r.Session.DoRequest("SoftLayer_User_Customer", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp)
1078  	return
1079  }
1080  
1081  // This method allows the master user of an account to undo the designation of this user as an alternate master user.  This can not be applied to the true master user of the account.
1082  //
1083  // Note that this method, by itself, WILL NOT affect the IAM Policies granted this user.  This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner turns off an "alternate/auxiliary master user / account owner".
1084  func (r User_Customer) TurnOffMasterUserPermissionCheckMode() (err error) {
1085  	var resp datatypes.Void
1086  	err = r.Session.DoRequest("SoftLayer_User_Customer", "turnOffMasterUserPermissionCheckMode", nil, &r.Options, &resp)
1087  	return
1088  }
1089  
1090  // This method allows the master user of an account to designate this user as an alternate master user.  Effectively this means that this user should have "all the same IMS permissions as a master user".
1091  //
1092  // Note that this method, by itself, WILL NOT affect the IAM Policies granted to this user. This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner designates an "alternate/auxiliary master user / account owner".
1093  func (r User_Customer) TurnOnMasterUserPermissionCheckMode() (err error) {
1094  	var resp datatypes.Void
1095  	err = r.Session.DoRequest("SoftLayer_User_Customer", "turnOnMasterUserPermissionCheckMode", nil, &r.Options, &resp)
1096  	return
1097  }
1098  
1099  // 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.
1100  func (r User_Customer) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) {
1101  	params := []interface{}{
1102  		notificationKeyName,
1103  		active,
1104  	}
1105  	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateNotificationSubscriber", params, &r.Options, &resp)
1106  	return
1107  }
1108  
1109  // 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.
1110  func (r User_Customer) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) {
1111  	params := []interface{}{
1112  		questions,
1113  		answers,
1114  	}
1115  	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSecurityAnswers", params, &r.Options, &resp)
1116  	return
1117  }
1118  
1119  // 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'.
1120  func (r User_Customer) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) {
1121  	params := []interface{}{
1122  		notificationKeyName,
1123  		deliveryMethodKeyNames,
1124  		active,
1125  	}
1126  	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSubscriberDeliveryMethod", params, &r.Options, &resp)
1127  	return
1128  }
1129  
1130  // 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...
1131  // * ...be over eight characters long.
1132  // * ...be under twenty characters long.
1133  // * ...contain at least one uppercase letter
1134  // * ...contain at least one lowercase letter
1135  // * ...contain at least one number
1136  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ =
1137  // * ...not match your username
1138  // Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords.
1139  func (r User_Customer) UpdateVpnPassword(password *string) (resp bool, err error) {
1140  	params := []interface{}{
1141  		password,
1142  	}
1143  	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnPassword", params, &r.Options, &resp)
1144  	return
1145  }
1146  
1147  // Always call this function to enable changes when manually configuring VPN subnet access.
1148  func (r User_Customer) UpdateVpnUser() (resp bool, err error) {
1149  	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnUser", nil, &r.Options, &resp)
1150  	return
1151  }
1152  
1153  // This method validate the given authentication token using the user id by comparing it with the actual user authentication token and return [[SoftLayer_Container_User_Customer_Portal_Token]] object
1154  func (r User_Customer) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
1155  	params := []interface{}{
1156  		authenticationToken,
1157  	}
1158  	err = r.Session.DoRequest("SoftLayer_User_Customer", "validateAuthenticationToken", params, &r.Options, &resp)
1159  	return
1160  }
1161  
1162  // The SoftLayer_User_Customer_ApiAuthentication type contains user's authentication key(s).
1163  type User_Customer_ApiAuthentication struct {
1164  	Session session.SLSession
1165  	Options sl.Options
1166  }
1167  
1168  // GetUserCustomerApiAuthenticationService returns an instance of the User_Customer_ApiAuthentication SoftLayer service
1169  func GetUserCustomerApiAuthenticationService(sess session.SLSession) User_Customer_ApiAuthentication {
1170  	return User_Customer_ApiAuthentication{Session: sess}
1171  }
1172  
1173  func (r User_Customer_ApiAuthentication) Id(id int) User_Customer_ApiAuthentication {
1174  	r.Options.Id = &id
1175  	return r
1176  }
1177  
1178  func (r User_Customer_ApiAuthentication) Mask(mask string) User_Customer_ApiAuthentication {
1179  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1180  		mask = fmt.Sprintf("mask[%s]", mask)
1181  	}
1182  
1183  	r.Options.Mask = mask
1184  	return r
1185  }
1186  
1187  func (r User_Customer_ApiAuthentication) Filter(filter string) User_Customer_ApiAuthentication {
1188  	r.Options.Filter = filter
1189  	return r
1190  }
1191  
1192  func (r User_Customer_ApiAuthentication) Limit(limit int) User_Customer_ApiAuthentication {
1193  	r.Options.Limit = &limit
1194  	return r
1195  }
1196  
1197  func (r User_Customer_ApiAuthentication) Offset(offset int) User_Customer_ApiAuthentication {
1198  	r.Options.Offset = &offset
1199  	return r
1200  }
1201  
1202  // Edit the properties of customer ApiAuthentication record by passing in a modified instance of a SoftLayer_User_Customer_ApiAuthentication object. Only the ipAddressRestriction property can be modified.
1203  func (r User_Customer_ApiAuthentication) EditObject(templateObject *datatypes.User_Customer_ApiAuthentication) (resp datatypes.User_Customer_ApiAuthentication, err error) {
1204  	params := []interface{}{
1205  		templateObject,
1206  	}
1207  	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "editObject", params, &r.Options, &resp)
1208  	return
1209  }
1210  
1211  // 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.
1212  func (r User_Customer_ApiAuthentication) GetObject() (resp datatypes.User_Customer_ApiAuthentication, err error) {
1213  	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getObject", nil, &r.Options, &resp)
1214  	return
1215  }
1216  
1217  // Retrieve The user who owns the api authentication key.
1218  func (r User_Customer_ApiAuthentication) GetUser() (resp datatypes.User_Customer, err error) {
1219  	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getUser", nil, &r.Options, &resp)
1220  	return
1221  }
1222  
1223  // 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.
1224  // Deprecated: This function has been marked as deprecated.
1225  type User_Customer_CustomerPermission_Permission struct {
1226  	Session session.SLSession
1227  	Options sl.Options
1228  }
1229  
1230  // GetUserCustomerCustomerPermissionPermissionService returns an instance of the User_Customer_CustomerPermission_Permission SoftLayer service
1231  func GetUserCustomerCustomerPermissionPermissionService(sess session.SLSession) User_Customer_CustomerPermission_Permission {
1232  	return User_Customer_CustomerPermission_Permission{Session: sess}
1233  }
1234  
1235  func (r User_Customer_CustomerPermission_Permission) Id(id int) User_Customer_CustomerPermission_Permission {
1236  	r.Options.Id = &id
1237  	return r
1238  }
1239  
1240  func (r User_Customer_CustomerPermission_Permission) Mask(mask string) User_Customer_CustomerPermission_Permission {
1241  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1242  		mask = fmt.Sprintf("mask[%s]", mask)
1243  	}
1244  
1245  	r.Options.Mask = mask
1246  	return r
1247  }
1248  
1249  func (r User_Customer_CustomerPermission_Permission) Filter(filter string) User_Customer_CustomerPermission_Permission {
1250  	r.Options.Filter = filter
1251  	return r
1252  }
1253  
1254  func (r User_Customer_CustomerPermission_Permission) Limit(limit int) User_Customer_CustomerPermission_Permission {
1255  	r.Options.Limit = &limit
1256  	return r
1257  }
1258  
1259  func (r User_Customer_CustomerPermission_Permission) Offset(offset int) User_Customer_CustomerPermission_Permission {
1260  	r.Options.Offset = &offset
1261  	return r
1262  }
1263  
1264  // Retrieve all available permissions.
1265  // Deprecated: This function has been marked as deprecated.
1266  func (r User_Customer_CustomerPermission_Permission) GetAllObjects() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
1267  	err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getAllObjects", nil, &r.Options, &resp)
1268  	return
1269  }
1270  
1271  // 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.
1272  func (r User_Customer_CustomerPermission_Permission) GetObject() (resp datatypes.User_Customer_CustomerPermission_Permission, err error) {
1273  	err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getObject", nil, &r.Options, &resp)
1274  	return
1275  }
1276  
1277  // 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.
1278  type User_Customer_External_Binding struct {
1279  	Session session.SLSession
1280  	Options sl.Options
1281  }
1282  
1283  // GetUserCustomerExternalBindingService returns an instance of the User_Customer_External_Binding SoftLayer service
1284  func GetUserCustomerExternalBindingService(sess session.SLSession) User_Customer_External_Binding {
1285  	return User_Customer_External_Binding{Session: sess}
1286  }
1287  
1288  func (r User_Customer_External_Binding) Id(id int) User_Customer_External_Binding {
1289  	r.Options.Id = &id
1290  	return r
1291  }
1292  
1293  func (r User_Customer_External_Binding) Mask(mask string) User_Customer_External_Binding {
1294  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1295  		mask = fmt.Sprintf("mask[%s]", mask)
1296  	}
1297  
1298  	r.Options.Mask = mask
1299  	return r
1300  }
1301  
1302  func (r User_Customer_External_Binding) Filter(filter string) User_Customer_External_Binding {
1303  	r.Options.Filter = filter
1304  	return r
1305  }
1306  
1307  func (r User_Customer_External_Binding) Limit(limit int) User_Customer_External_Binding {
1308  	r.Options.Limit = &limit
1309  	return r
1310  }
1311  
1312  func (r User_Customer_External_Binding) Offset(offset int) User_Customer_External_Binding {
1313  	r.Options.Offset = &offset
1314  	return r
1315  }
1316  
1317  // 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.
1318  func (r User_Customer_External_Binding) DeleteObject() (resp bool, err error) {
1319  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "deleteObject", nil, &r.Options, &resp)
1320  	return
1321  }
1322  
1323  // 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.
1324  //
1325  // You may supply one of the following reason when you disable an external binding:
1326  // *Unspecified
1327  // *TemporarilyUnavailable
1328  // *Lost
1329  // *Stolen
1330  func (r User_Customer_External_Binding) Disable(reason *string) (resp bool, err error) {
1331  	params := []interface{}{
1332  		reason,
1333  	}
1334  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "disable", params, &r.Options, &resp)
1335  	return
1336  }
1337  
1338  // 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.
1339  //
1340  // Please note that API access will be disabled for users that have an active external binding.
1341  func (r User_Customer_External_Binding) Enable() (resp bool, err error) {
1342  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "enable", nil, &r.Options, &resp)
1343  	return
1344  }
1345  
1346  // Retrieve Attributes of an external authentication binding.
1347  func (r User_Customer_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1348  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getAttributes", nil, &r.Options, &resp)
1349  	return
1350  }
1351  
1352  // Retrieve Information regarding the billing item for external authentication.
1353  func (r User_Customer_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1354  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getBillingItem", nil, &r.Options, &resp)
1355  	return
1356  }
1357  
1358  // Retrieve An optional note for identifying the external binding.
1359  func (r User_Customer_External_Binding) GetNote() (resp string, err error) {
1360  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getNote", nil, &r.Options, &resp)
1361  	return
1362  }
1363  
1364  // no documentation yet
1365  func (r User_Customer_External_Binding) GetObject() (resp datatypes.User_Customer_External_Binding, err error) {
1366  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getObject", nil, &r.Options, &resp)
1367  	return
1368  }
1369  
1370  // Retrieve The type of external authentication binding.
1371  func (r User_Customer_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1372  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getType", nil, &r.Options, &resp)
1373  	return
1374  }
1375  
1376  // Retrieve The SoftLayer user that the external authentication binding belongs to.
1377  func (r User_Customer_External_Binding) GetUser() (resp datatypes.User_Customer, err error) {
1378  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getUser", nil, &r.Options, &resp)
1379  	return
1380  }
1381  
1382  // Retrieve The vendor of an external authentication binding.
1383  func (r User_Customer_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1384  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getVendor", nil, &r.Options, &resp)
1385  	return
1386  }
1387  
1388  // Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1389  func (r User_Customer_External_Binding) UpdateNote(text *string) (resp bool, err error) {
1390  	params := []interface{}{
1391  		text,
1392  	}
1393  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "updateNote", params, &r.Options, &resp)
1394  	return
1395  }
1396  
1397  // 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.
1398  //
1399  // The information provided by this external binding data type includes:
1400  // * The type of credential
1401  // * The current state of the credential
1402  // ** Active
1403  // ** Inactive
1404  //
1405  // SoftLayer users with an active external binding will be prohibited from using the API for security reasons.
1406  type User_Customer_External_Binding_Totp struct {
1407  	Session session.SLSession
1408  	Options sl.Options
1409  }
1410  
1411  // GetUserCustomerExternalBindingTotpService returns an instance of the User_Customer_External_Binding_Totp SoftLayer service
1412  func GetUserCustomerExternalBindingTotpService(sess session.SLSession) User_Customer_External_Binding_Totp {
1413  	return User_Customer_External_Binding_Totp{Session: sess}
1414  }
1415  
1416  func (r User_Customer_External_Binding_Totp) Id(id int) User_Customer_External_Binding_Totp {
1417  	r.Options.Id = &id
1418  	return r
1419  }
1420  
1421  func (r User_Customer_External_Binding_Totp) Mask(mask string) User_Customer_External_Binding_Totp {
1422  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1423  		mask = fmt.Sprintf("mask[%s]", mask)
1424  	}
1425  
1426  	r.Options.Mask = mask
1427  	return r
1428  }
1429  
1430  func (r User_Customer_External_Binding_Totp) Filter(filter string) User_Customer_External_Binding_Totp {
1431  	r.Options.Filter = filter
1432  	return r
1433  }
1434  
1435  func (r User_Customer_External_Binding_Totp) Limit(limit int) User_Customer_External_Binding_Totp {
1436  	r.Options.Limit = &limit
1437  	return r
1438  }
1439  
1440  func (r User_Customer_External_Binding_Totp) Offset(offset int) User_Customer_External_Binding_Totp {
1441  	r.Options.Offset = &offset
1442  	return r
1443  }
1444  
1445  // no documentation yet
1446  func (r User_Customer_External_Binding_Totp) Activate() (resp bool, err error) {
1447  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "activate", nil, &r.Options, &resp)
1448  	return
1449  }
1450  
1451  // no documentation yet
1452  func (r User_Customer_External_Binding_Totp) Deactivate() (resp bool, err error) {
1453  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deactivate", nil, &r.Options, &resp)
1454  	return
1455  }
1456  
1457  // 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.
1458  func (r User_Customer_External_Binding_Totp) DeleteObject() (resp bool, err error) {
1459  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deleteObject", nil, &r.Options, &resp)
1460  	return
1461  }
1462  
1463  // 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.
1464  //
1465  // You may supply one of the following reason when you disable an external binding:
1466  // *Unspecified
1467  // *TemporarilyUnavailable
1468  // *Lost
1469  // *Stolen
1470  func (r User_Customer_External_Binding_Totp) Disable(reason *string) (resp bool, err error) {
1471  	params := []interface{}{
1472  		reason,
1473  	}
1474  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "disable", params, &r.Options, &resp)
1475  	return
1476  }
1477  
1478  // 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.
1479  //
1480  // Please note that API access will be disabled for users that have an active external binding.
1481  func (r User_Customer_External_Binding_Totp) Enable() (resp bool, err error) {
1482  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "enable", nil, &r.Options, &resp)
1483  	return
1484  }
1485  
1486  // no documentation yet
1487  func (r User_Customer_External_Binding_Totp) GenerateSecretKey() (resp string, err error) {
1488  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "generateSecretKey", nil, &r.Options, &resp)
1489  	return
1490  }
1491  
1492  // Retrieve Attributes of an external authentication binding.
1493  func (r User_Customer_External_Binding_Totp) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1494  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getAttributes", nil, &r.Options, &resp)
1495  	return
1496  }
1497  
1498  // Retrieve Information regarding the billing item for external authentication.
1499  func (r User_Customer_External_Binding_Totp) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1500  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getBillingItem", nil, &r.Options, &resp)
1501  	return
1502  }
1503  
1504  // Retrieve An optional note for identifying the external binding.
1505  func (r User_Customer_External_Binding_Totp) GetNote() (resp string, err error) {
1506  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getNote", nil, &r.Options, &resp)
1507  	return
1508  }
1509  
1510  // no documentation yet
1511  func (r User_Customer_External_Binding_Totp) GetObject() (resp datatypes.User_Customer_External_Binding_Totp, err error) {
1512  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getObject", nil, &r.Options, &resp)
1513  	return
1514  }
1515  
1516  // Retrieve The type of external authentication binding.
1517  func (r User_Customer_External_Binding_Totp) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1518  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getType", nil, &r.Options, &resp)
1519  	return
1520  }
1521  
1522  // Retrieve The SoftLayer user that the external authentication binding belongs to.
1523  func (r User_Customer_External_Binding_Totp) GetUser() (resp datatypes.User_Customer, err error) {
1524  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getUser", nil, &r.Options, &resp)
1525  	return
1526  }
1527  
1528  // Retrieve The vendor of an external authentication binding.
1529  func (r User_Customer_External_Binding_Totp) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1530  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getVendor", nil, &r.Options, &resp)
1531  	return
1532  }
1533  
1534  // Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1535  func (r User_Customer_External_Binding_Totp) UpdateNote(text *string) (resp bool, err error) {
1536  	params := []interface{}{
1537  		text,
1538  	}
1539  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "updateNote", params, &r.Options, &resp)
1540  	return
1541  }
1542  
1543  // 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.
1544  type User_Customer_External_Binding_Vendor struct {
1545  	Session session.SLSession
1546  	Options sl.Options
1547  }
1548  
1549  // GetUserCustomerExternalBindingVendorService returns an instance of the User_Customer_External_Binding_Vendor SoftLayer service
1550  func GetUserCustomerExternalBindingVendorService(sess session.SLSession) User_Customer_External_Binding_Vendor {
1551  	return User_Customer_External_Binding_Vendor{Session: sess}
1552  }
1553  
1554  func (r User_Customer_External_Binding_Vendor) Id(id int) User_Customer_External_Binding_Vendor {
1555  	r.Options.Id = &id
1556  	return r
1557  }
1558  
1559  func (r User_Customer_External_Binding_Vendor) Mask(mask string) User_Customer_External_Binding_Vendor {
1560  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1561  		mask = fmt.Sprintf("mask[%s]", mask)
1562  	}
1563  
1564  	r.Options.Mask = mask
1565  	return r
1566  }
1567  
1568  func (r User_Customer_External_Binding_Vendor) Filter(filter string) User_Customer_External_Binding_Vendor {
1569  	r.Options.Filter = filter
1570  	return r
1571  }
1572  
1573  func (r User_Customer_External_Binding_Vendor) Limit(limit int) User_Customer_External_Binding_Vendor {
1574  	r.Options.Limit = &limit
1575  	return r
1576  }
1577  
1578  func (r User_Customer_External_Binding_Vendor) Offset(offset int) User_Customer_External_Binding_Vendor {
1579  	r.Options.Offset = &offset
1580  	return r
1581  }
1582  
1583  // 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.
1584  func (r User_Customer_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) {
1585  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp)
1586  	return
1587  }
1588  
1589  // no documentation yet
1590  func (r User_Customer_External_Binding_Vendor) GetObject() (resp datatypes.User_Customer_External_Binding_Vendor, err error) {
1591  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getObject", nil, &r.Options, &resp)
1592  	return
1593  }
1594  
1595  // 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.
1596  //
1597  // The information provided by the VeriSign external binding data type includes:
1598  // * The type of credential
1599  // * The current state of the credential
1600  // ** Enabled
1601  // ** Disabled
1602  // ** Locked
1603  // * The credential's expiration date
1604  // * The last time the credential was updated
1605  //
1606  // SoftLayer users with an active external binding will be prohibited from using the API for security reasons.
1607  type User_Customer_External_Binding_Verisign struct {
1608  	Session session.SLSession
1609  	Options sl.Options
1610  }
1611  
1612  // GetUserCustomerExternalBindingVerisignService returns an instance of the User_Customer_External_Binding_Verisign SoftLayer service
1613  func GetUserCustomerExternalBindingVerisignService(sess session.SLSession) User_Customer_External_Binding_Verisign {
1614  	return User_Customer_External_Binding_Verisign{Session: sess}
1615  }
1616  
1617  func (r User_Customer_External_Binding_Verisign) Id(id int) User_Customer_External_Binding_Verisign {
1618  	r.Options.Id = &id
1619  	return r
1620  }
1621  
1622  func (r User_Customer_External_Binding_Verisign) Mask(mask string) User_Customer_External_Binding_Verisign {
1623  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1624  		mask = fmt.Sprintf("mask[%s]", mask)
1625  	}
1626  
1627  	r.Options.Mask = mask
1628  	return r
1629  }
1630  
1631  func (r User_Customer_External_Binding_Verisign) Filter(filter string) User_Customer_External_Binding_Verisign {
1632  	r.Options.Filter = filter
1633  	return r
1634  }
1635  
1636  func (r User_Customer_External_Binding_Verisign) Limit(limit int) User_Customer_External_Binding_Verisign {
1637  	r.Options.Limit = &limit
1638  	return r
1639  }
1640  
1641  func (r User_Customer_External_Binding_Verisign) Offset(offset int) User_Customer_External_Binding_Verisign {
1642  	r.Options.Offset = &offset
1643  	return r
1644  }
1645  
1646  // 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.
1647  //
1648  // 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.
1649  func (r User_Customer_External_Binding_Verisign) DeleteObject() (resp bool, err error) {
1650  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "deleteObject", nil, &r.Options, &resp)
1651  	return
1652  }
1653  
1654  // 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.
1655  //
1656  // You may supply one of the following reason when you disable an external binding:
1657  // *Unspecified
1658  // *TemporarilyUnavailable
1659  // *Lost
1660  // *Stolen
1661  func (r User_Customer_External_Binding_Verisign) Disable(reason *string) (resp bool, err error) {
1662  	params := []interface{}{
1663  		reason,
1664  	}
1665  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "disable", params, &r.Options, &resp)
1666  	return
1667  }
1668  
1669  // 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.
1670  //
1671  // Please note that API access will be disabled for users that have an active external binding.
1672  func (r User_Customer_External_Binding_Verisign) Enable() (resp bool, err error) {
1673  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "enable", nil, &r.Options, &resp)
1674  	return
1675  }
1676  
1677  // An activation code is required when provisioning a new mobile credential from Verisign.  This method will return the required activation code.
1678  func (r User_Customer_External_Binding_Verisign) GetActivationCodeForMobileClient() (resp string, err error) {
1679  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getActivationCodeForMobileClient", nil, &r.Options, &resp)
1680  	return
1681  }
1682  
1683  // Retrieve Attributes of an external authentication binding.
1684  func (r User_Customer_External_Binding_Verisign) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1685  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getAttributes", nil, &r.Options, &resp)
1686  	return
1687  }
1688  
1689  // Retrieve Information regarding the billing item for external authentication.
1690  func (r User_Customer_External_Binding_Verisign) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1691  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getBillingItem", nil, &r.Options, &resp)
1692  	return
1693  }
1694  
1695  // Retrieve The date that a VeriSign credential expires.
1696  func (r User_Customer_External_Binding_Verisign) GetCredentialExpirationDate() (resp string, err error) {
1697  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialExpirationDate", nil, &r.Options, &resp)
1698  	return
1699  }
1700  
1701  // Retrieve The last time a VeriSign credential was updated.
1702  func (r User_Customer_External_Binding_Verisign) GetCredentialLastUpdateDate() (resp string, err error) {
1703  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialLastUpdateDate", nil, &r.Options, &resp)
1704  	return
1705  }
1706  
1707  // Retrieve The current state of a VeriSign credential. This can be 'Enabled', 'Disabled', or 'Locked'.
1708  func (r User_Customer_External_Binding_Verisign) GetCredentialState() (resp string, err error) {
1709  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialState", nil, &r.Options, &resp)
1710  	return
1711  }
1712  
1713  // Retrieve The type of VeriSign credential. This can be either 'Hardware' or 'Software'.
1714  func (r User_Customer_External_Binding_Verisign) GetCredentialType() (resp string, err error) {
1715  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialType", nil, &r.Options, &resp)
1716  	return
1717  }
1718  
1719  // Retrieve An optional note for identifying the external binding.
1720  func (r User_Customer_External_Binding_Verisign) GetNote() (resp string, err error) {
1721  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getNote", nil, &r.Options, &resp)
1722  	return
1723  }
1724  
1725  // no documentation yet
1726  func (r User_Customer_External_Binding_Verisign) GetObject() (resp datatypes.User_Customer_External_Binding_Verisign, err error) {
1727  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getObject", nil, &r.Options, &resp)
1728  	return
1729  }
1730  
1731  // Retrieve The type of external authentication binding.
1732  func (r User_Customer_External_Binding_Verisign) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1733  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getType", nil, &r.Options, &resp)
1734  	return
1735  }
1736  
1737  // Retrieve The SoftLayer user that the external authentication binding belongs to.
1738  func (r User_Customer_External_Binding_Verisign) GetUser() (resp datatypes.User_Customer, err error) {
1739  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getUser", nil, &r.Options, &resp)
1740  	return
1741  }
1742  
1743  // Retrieve The vendor of an external authentication binding.
1744  func (r User_Customer_External_Binding_Verisign) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1745  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getVendor", nil, &r.Options, &resp)
1746  	return
1747  }
1748  
1749  // 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.
1750  func (r User_Customer_External_Binding_Verisign) Unlock(securityCode *string) (resp bool, err error) {
1751  	params := []interface{}{
1752  		securityCode,
1753  	}
1754  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "unlock", params, &r.Options, &resp)
1755  	return
1756  }
1757  
1758  // Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1759  func (r User_Customer_External_Binding_Verisign) UpdateNote(text *string) (resp bool, err error) {
1760  	params := []interface{}{
1761  		text,
1762  	}
1763  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "updateNote", params, &r.Options, &resp)
1764  	return
1765  }
1766  
1767  // Validate the user id and VeriSign credential id used to create an external authentication binding.
1768  func (r User_Customer_External_Binding_Verisign) ValidateCredentialId(userId *int, externalId *string) (resp bool, err error) {
1769  	params := []interface{}{
1770  		userId,
1771  		externalId,
1772  	}
1773  	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "validateCredentialId", params, &r.Options, &resp)
1774  	return
1775  }
1776  
1777  // no documentation yet
1778  type User_Customer_Invitation struct {
1779  	Session session.SLSession
1780  	Options sl.Options
1781  }
1782  
1783  // GetUserCustomerInvitationService returns an instance of the User_Customer_Invitation SoftLayer service
1784  func GetUserCustomerInvitationService(sess session.SLSession) User_Customer_Invitation {
1785  	return User_Customer_Invitation{Session: sess}
1786  }
1787  
1788  func (r User_Customer_Invitation) Id(id int) User_Customer_Invitation {
1789  	r.Options.Id = &id
1790  	return r
1791  }
1792  
1793  func (r User_Customer_Invitation) Mask(mask string) User_Customer_Invitation {
1794  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1795  		mask = fmt.Sprintf("mask[%s]", mask)
1796  	}
1797  
1798  	r.Options.Mask = mask
1799  	return r
1800  }
1801  
1802  func (r User_Customer_Invitation) Filter(filter string) User_Customer_Invitation {
1803  	r.Options.Filter = filter
1804  	return r
1805  }
1806  
1807  func (r User_Customer_Invitation) Limit(limit int) User_Customer_Invitation {
1808  	r.Options.Limit = &limit
1809  	return r
1810  }
1811  
1812  func (r User_Customer_Invitation) Offset(offset int) User_Customer_Invitation {
1813  	r.Options.Offset = &offset
1814  	return r
1815  }
1816  
1817  // no documentation yet
1818  func (r User_Customer_Invitation) GetObject() (resp datatypes.User_Customer_Invitation, err error) {
1819  	err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getObject", nil, &r.Options, &resp)
1820  	return
1821  }
1822  
1823  // Retrieve
1824  func (r User_Customer_Invitation) GetUser() (resp datatypes.User_Customer, err error) {
1825  	err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getUser", nil, &r.Options, &resp)
1826  	return
1827  }
1828  
1829  // 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.
1830  type User_Customer_Notification_Hardware struct {
1831  	Session session.SLSession
1832  	Options sl.Options
1833  }
1834  
1835  // GetUserCustomerNotificationHardwareService returns an instance of the User_Customer_Notification_Hardware SoftLayer service
1836  func GetUserCustomerNotificationHardwareService(sess session.SLSession) User_Customer_Notification_Hardware {
1837  	return User_Customer_Notification_Hardware{Session: sess}
1838  }
1839  
1840  func (r User_Customer_Notification_Hardware) Id(id int) User_Customer_Notification_Hardware {
1841  	r.Options.Id = &id
1842  	return r
1843  }
1844  
1845  func (r User_Customer_Notification_Hardware) Mask(mask string) User_Customer_Notification_Hardware {
1846  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1847  		mask = fmt.Sprintf("mask[%s]", mask)
1848  	}
1849  
1850  	r.Options.Mask = mask
1851  	return r
1852  }
1853  
1854  func (r User_Customer_Notification_Hardware) Filter(filter string) User_Customer_Notification_Hardware {
1855  	r.Options.Filter = filter
1856  	return r
1857  }
1858  
1859  func (r User_Customer_Notification_Hardware) Limit(limit int) User_Customer_Notification_Hardware {
1860  	r.Options.Limit = &limit
1861  	return r
1862  }
1863  
1864  func (r User_Customer_Notification_Hardware) Offset(offset int) User_Customer_Notification_Hardware {
1865  	r.Options.Offset = &offset
1866  	return r
1867  }
1868  
1869  // 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.
1870  func (r User_Customer_Notification_Hardware) CreateObject(templateObject *datatypes.User_Customer_Notification_Hardware) (resp datatypes.User_Customer_Notification_Hardware, err error) {
1871  	params := []interface{}{
1872  		templateObject,
1873  	}
1874  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObject", params, &r.Options, &resp)
1875  	return
1876  }
1877  
1878  // 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.
1879  func (r User_Customer_Notification_Hardware) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp []datatypes.User_Customer_Notification_Hardware, err error) {
1880  	params := []interface{}{
1881  		templateObjects,
1882  	}
1883  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObjects", params, &r.Options, &resp)
1884  	return
1885  }
1886  
1887  // 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.
1888  func (r User_Customer_Notification_Hardware) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp bool, err error) {
1889  	params := []interface{}{
1890  		templateObjects,
1891  	}
1892  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "deleteObjects", params, &r.Options, &resp)
1893  	return
1894  }
1895  
1896  // 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.
1897  //
1898  // This behavior can also be accomplished by simply tapping monitoringUserNotification on the Hardware_Server object.
1899  func (r User_Customer_Notification_Hardware) FindByHardwareId(hardwareId *int) (resp []datatypes.User_Customer_Notification_Hardware, err error) {
1900  	params := []interface{}{
1901  		hardwareId,
1902  	}
1903  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "findByHardwareId", params, &r.Options, &resp)
1904  	return
1905  }
1906  
1907  // Retrieve The hardware object that will be monitored.
1908  func (r User_Customer_Notification_Hardware) GetHardware() (resp datatypes.Hardware, err error) {
1909  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getHardware", nil, &r.Options, &resp)
1910  	return
1911  }
1912  
1913  // 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
1914  func (r User_Customer_Notification_Hardware) GetObject() (resp datatypes.User_Customer_Notification_Hardware, err error) {
1915  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getObject", nil, &r.Options, &resp)
1916  	return
1917  }
1918  
1919  // Retrieve The user that will be notified when the associated hardware object fails a monitoring instance.
1920  func (r User_Customer_Notification_Hardware) GetUser() (resp datatypes.User_Customer, err error) {
1921  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getUser", nil, &r.Options, &resp)
1922  	return
1923  }
1924  
1925  // 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 Virtual Guest object to be notified on failure.
1926  type User_Customer_Notification_Virtual_Guest struct {
1927  	Session session.SLSession
1928  	Options sl.Options
1929  }
1930  
1931  // GetUserCustomerNotificationVirtualGuestService returns an instance of the User_Customer_Notification_Virtual_Guest SoftLayer service
1932  func GetUserCustomerNotificationVirtualGuestService(sess session.SLSession) User_Customer_Notification_Virtual_Guest {
1933  	return User_Customer_Notification_Virtual_Guest{Session: sess}
1934  }
1935  
1936  func (r User_Customer_Notification_Virtual_Guest) Id(id int) User_Customer_Notification_Virtual_Guest {
1937  	r.Options.Id = &id
1938  	return r
1939  }
1940  
1941  func (r User_Customer_Notification_Virtual_Guest) Mask(mask string) User_Customer_Notification_Virtual_Guest {
1942  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1943  		mask = fmt.Sprintf("mask[%s]", mask)
1944  	}
1945  
1946  	r.Options.Mask = mask
1947  	return r
1948  }
1949  
1950  func (r User_Customer_Notification_Virtual_Guest) Filter(filter string) User_Customer_Notification_Virtual_Guest {
1951  	r.Options.Filter = filter
1952  	return r
1953  }
1954  
1955  func (r User_Customer_Notification_Virtual_Guest) Limit(limit int) User_Customer_Notification_Virtual_Guest {
1956  	r.Options.Limit = &limit
1957  	return r
1958  }
1959  
1960  func (r User_Customer_Notification_Virtual_Guest) Offset(offset int) User_Customer_Notification_Virtual_Guest {
1961  	r.Options.Offset = &offset
1962  	return r
1963  }
1964  
1965  // 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.
1966  func (r User_Customer_Notification_Virtual_Guest) CreateObject(templateObject *datatypes.User_Customer_Notification_Virtual_Guest) (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) {
1967  	params := []interface{}{
1968  		templateObject,
1969  	}
1970  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObject", params, &r.Options, &resp)
1971  	return
1972  }
1973  
1974  // 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.
1975  func (r User_Customer_Notification_Virtual_Guest) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) {
1976  	params := []interface{}{
1977  		templateObjects,
1978  	}
1979  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObjects", params, &r.Options, &resp)
1980  	return
1981  }
1982  
1983  // 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.
1984  func (r User_Customer_Notification_Virtual_Guest) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp bool, err error) {
1985  	params := []interface{}{
1986  		templateObjects,
1987  	}
1988  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "deleteObjects", params, &r.Options, &resp)
1989  	return
1990  }
1991  
1992  // This method returns all SoftLayer_User_Customer_Notification_Virtual_Guest objects associated with the passed in ID as long as that Virtual Guest ID is owned by the current user's account.
1993  //
1994  // This behavior can also be accomplished by simply tapping monitoringUserNotification on the Virtual_Guest object.
1995  func (r User_Customer_Notification_Virtual_Guest) FindByGuestId(id *int) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) {
1996  	params := []interface{}{
1997  		id,
1998  	}
1999  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "findByGuestId", params, &r.Options, &resp)
2000  	return
2001  }
2002  
2003  // Retrieve The virtual guest object that will be monitored.
2004  func (r User_Customer_Notification_Virtual_Guest) GetGuest() (resp datatypes.Virtual_Guest, err error) {
2005  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getGuest", nil, &r.Options, &resp)
2006  	return
2007  }
2008  
2009  // 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
2010  func (r User_Customer_Notification_Virtual_Guest) GetObject() (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) {
2011  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getObject", nil, &r.Options, &resp)
2012  	return
2013  }
2014  
2015  // Retrieve The user that will be notified when the associated virtual guest object fails a monitoring instance.
2016  func (r User_Customer_Notification_Virtual_Guest) GetUser() (resp datatypes.User_Customer, err error) {
2017  	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getUser", nil, &r.Options, &resp)
2018  	return
2019  }
2020  
2021  // no documentation yet
2022  type User_Customer_OpenIdConnect struct {
2023  	Session session.SLSession
2024  	Options sl.Options
2025  }
2026  
2027  // GetUserCustomerOpenIdConnectService returns an instance of the User_Customer_OpenIdConnect SoftLayer service
2028  func GetUserCustomerOpenIdConnectService(sess session.SLSession) User_Customer_OpenIdConnect {
2029  	return User_Customer_OpenIdConnect{Session: sess}
2030  }
2031  
2032  func (r User_Customer_OpenIdConnect) Id(id int) User_Customer_OpenIdConnect {
2033  	r.Options.Id = &id
2034  	return r
2035  }
2036  
2037  func (r User_Customer_OpenIdConnect) Mask(mask string) User_Customer_OpenIdConnect {
2038  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2039  		mask = fmt.Sprintf("mask[%s]", mask)
2040  	}
2041  
2042  	r.Options.Mask = mask
2043  	return r
2044  }
2045  
2046  func (r User_Customer_OpenIdConnect) Filter(filter string) User_Customer_OpenIdConnect {
2047  	r.Options.Filter = filter
2048  	return r
2049  }
2050  
2051  func (r User_Customer_OpenIdConnect) Limit(limit int) User_Customer_OpenIdConnect {
2052  	r.Options.Limit = &limit
2053  	return r
2054  }
2055  
2056  func (r User_Customer_OpenIdConnect) Offset(offset int) User_Customer_OpenIdConnect {
2057  	r.Options.Offset = &offset
2058  	return r
2059  }
2060  
2061  // no documentation yet
2062  func (r User_Customer_OpenIdConnect) AcknowledgeSupportPolicy() (err error) {
2063  	var resp datatypes.Void
2064  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "acknowledgeSupportPolicy", nil, &r.Options, &resp)
2065  	return
2066  }
2067  
2068  // Completes invitation process for an OpenIdConnect user created by Bluemix Unified User Console.
2069  func (r User_Customer_OpenIdConnect) ActivateOpenIdConnectUser(verificationCode *string, userInfo *datatypes.User_Customer, iamId *string) (err error) {
2070  	var resp datatypes.Void
2071  	params := []interface{}{
2072  		verificationCode,
2073  		userInfo,
2074  		iamId,
2075  	}
2076  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "activateOpenIdConnectUser", params, &r.Options, &resp)
2077  	return
2078  }
2079  
2080  // Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the user's new API key. Each portal user is allowed only one API key.
2081  func (r User_Customer_OpenIdConnect) AddApiAuthenticationKey() (resp string, err error) {
2082  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addApiAuthenticationKey", nil, &r.Options, &resp)
2083  	return
2084  }
2085  
2086  // 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.
2087  //
2088  // 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.
2089  func (r User_Customer_OpenIdConnect) AddBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
2090  	params := []interface{}{
2091  		dedicatedHostIds,
2092  	}
2093  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkDedicatedHostAccess", params, &r.Options, &resp)
2094  	return
2095  }
2096  
2097  // 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.
2098  //
2099  // 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.
2100  func (r User_Customer_OpenIdConnect) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
2101  	params := []interface{}{
2102  		hardwareIds,
2103  	}
2104  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkHardwareAccess", params, &r.Options, &resp)
2105  	return
2106  }
2107  
2108  // Add multiple permissions to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
2109  //
2110  // 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.
2111  //
2112  // 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.
2113  func (r User_Customer_OpenIdConnect) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
2114  	params := []interface{}{
2115  		permissions,
2116  	}
2117  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkPortalPermission", params, &r.Options, &resp)
2118  	return
2119  }
2120  
2121  // no documentation yet
2122  func (r User_Customer_OpenIdConnect) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
2123  	var resp datatypes.Void
2124  	params := []interface{}{
2125  		roles,
2126  	}
2127  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkRoles", params, &r.Options, &resp)
2128  	return
2129  }
2130  
2131  // 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.
2132  //
2133  // 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.
2134  func (r User_Customer_OpenIdConnect) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
2135  	params := []interface{}{
2136  		virtualGuestIds,
2137  	}
2138  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkVirtualGuestAccess", params, &r.Options, &resp)
2139  	return
2140  }
2141  
2142  // 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.
2143  //
2144  // 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.
2145  //
2146  // Only the USER_MANAGE permission is required to execute this.
2147  func (r User_Customer_OpenIdConnect) AddDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
2148  	params := []interface{}{
2149  		dedicatedHostId,
2150  	}
2151  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addDedicatedHostAccess", params, &r.Options, &resp)
2152  	return
2153  }
2154  
2155  // no documentation yet
2156  func (r User_Customer_OpenIdConnect) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) {
2157  	params := []interface{}{
2158  		externalBinding,
2159  	}
2160  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addExternalBinding", params, &r.Options, &resp)
2161  	return
2162  }
2163  
2164  // 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.
2165  //
2166  // 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.
2167  //
2168  // Only the USER_MANAGE permission is required to execute this.
2169  func (r User_Customer_OpenIdConnect) AddHardwareAccess(hardwareId *int) (resp bool, err error) {
2170  	params := []interface{}{
2171  		hardwareId,
2172  	}
2173  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addHardwareAccess", params, &r.Options, &resp)
2174  	return
2175  }
2176  
2177  // 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.
2178  func (r User_Customer_OpenIdConnect) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) {
2179  	params := []interface{}{
2180  		notificationKeyName,
2181  	}
2182  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addNotificationSubscriber", params, &r.Options, &resp)
2183  	return
2184  }
2185  
2186  // Add a permission to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
2187  //
2188  // 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.
2189  //
2190  // 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.
2191  func (r User_Customer_OpenIdConnect) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
2192  	params := []interface{}{
2193  		permission,
2194  	}
2195  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addPortalPermission", params, &r.Options, &resp)
2196  	return
2197  }
2198  
2199  // no documentation yet
2200  func (r User_Customer_OpenIdConnect) AddRole(role *datatypes.User_Permission_Role) (err error) {
2201  	var resp datatypes.Void
2202  	params := []interface{}{
2203  		role,
2204  	}
2205  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addRole", params, &r.Options, &resp)
2206  	return
2207  }
2208  
2209  // 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.
2210  //
2211  // 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.
2212  //
2213  // Only the USER_MANAGE permission is required to execute this.
2214  func (r User_Customer_OpenIdConnect) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
2215  	params := []interface{}{
2216  		virtualGuestId,
2217  	}
2218  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addVirtualGuestAccess", params, &r.Options, &resp)
2219  	return
2220  }
2221  
2222  // This method can be used in place of [[SoftLayer_User_Customer::editObject]] to change the parent user of this user.
2223  //
2224  // The new parent must be a user on the same account, and must not be a child of this user.  A user is not allowed to change their own parent.
2225  //
2226  // If the cascadeFlag is set to false, then an exception will be thrown if the new parent does not have all of the permissions that this user possesses.  If the cascadeFlag is set to true, then permissions will be removed from this user and the descendants of this user as necessary so that no children of the parent will have permissions that the parent does not possess. However, setting the cascadeFlag to true will not remove the access all device permissions from this user. The customer portal will need to be used to remove these permissions.
2227  func (r User_Customer_OpenIdConnect) AssignNewParentId(parentId *int, cascadePermissionsFlag *bool) (resp datatypes.User_Customer, err error) {
2228  	params := []interface{}{
2229  		parentId,
2230  		cascadePermissionsFlag,
2231  	}
2232  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "assignNewParentId", params, &r.Options, &resp)
2233  	return
2234  }
2235  
2236  // 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.
2237  func (r User_Customer_OpenIdConnect) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) {
2238  	params := []interface{}{
2239  		preferenceTypeKeyName,
2240  		value,
2241  	}
2242  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "changePreference", params, &r.Options, &resp)
2243  	return
2244  }
2245  
2246  // no documentation yet
2247  func (r User_Customer_OpenIdConnect) CompleteInvitationAfterLogin(providerType *string, accessToken *string, emailRegistrationCode *string) (err error) {
2248  	var resp datatypes.Void
2249  	params := []interface{}{
2250  		providerType,
2251  		accessToken,
2252  		emailRegistrationCode,
2253  	}
2254  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "completeInvitationAfterLogin", params, &r.Options, &resp)
2255  	return
2256  }
2257  
2258  // Create a new subscriber for a given resource.
2259  func (r User_Customer_OpenIdConnect) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
2260  	params := []interface{}{
2261  		keyName,
2262  		resourceTableId,
2263  	}
2264  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createNotificationSubscriber", params, &r.Options, &resp)
2265  	return
2266  }
2267  
2268  // Create a new user in the SoftLayer customer portal. It is not possible to set up SLL 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.
2269  //
2270  // An account's master user and sub-users who have the User Manage permission can add new users.
2271  //
2272  // Users are created with a default permission set. After adding a user it may be helpful to set their permissions and device access.
2273  //
2274  // secondaryPasswordTimeoutDays will be set to the system configured default value if the attribute is not provided or the attribute is not a valid value.
2275  //
2276  // Note, neither password nor vpnPassword parameters are required.
2277  //
2278  // 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.
2279  //
2280  // 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.
2281  //
2282  // 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.
2283  //
2284  // The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users.
2285  //
2286  // 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.
2287  //
2288  // IBMid considerations When a SoftLayer account is linked to a Platform Services (PaaS, formerly Bluemix) account, AND the trait on the SoftLayer Account indicating IBMid authentication is set, then SoftLayer will delegate the creation of an ACTIVE user to PaaS. This means that even though the request to create a new user in such an account may start at the IMS API, via this delegation we effectively turn it into a request that is driven by PaaS. In particular this means that any "invitation email" that comes to the user, will come from PaaS, not from IMS via IBMid.
2289  //
2290  // Users created in states other than ACTIVE (for example, a VPN_ONLY user) will be created directly in IMS without delegation (but note that no invitation is sent for a user created in any state other than ACTIVE).
2291  func (r User_Customer_OpenIdConnect) CreateObject(templateObject *datatypes.User_Customer_OpenIdConnect, password *string, vpnPassword *string) (resp datatypes.User_Customer_OpenIdConnect, err error) {
2292  	params := []interface{}{
2293  		templateObject,
2294  		password,
2295  		vpnPassword,
2296  	}
2297  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createObject", params, &r.Options, &resp)
2298  	return
2299  }
2300  
2301  // no documentation yet
2302  func (r User_Customer_OpenIdConnect) CreateOpenIdConnectUserAndCompleteInvitation(providerType *string, user *datatypes.User_Customer, password *string, registrationCode *string) (err error) {
2303  	var resp datatypes.Void
2304  	params := []interface{}{
2305  		providerType,
2306  		user,
2307  		password,
2308  		registrationCode,
2309  	}
2310  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createOpenIdConnectUserAndCompleteInvitation", params, &r.Options, &resp)
2311  	return
2312  }
2313  
2314  // 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'.
2315  func (r User_Customer_OpenIdConnect) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) {
2316  	params := []interface{}{
2317  		notificationKeyName,
2318  		deliveryMethodKeyNames,
2319  	}
2320  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createSubscriberDeliveryMethods", params, &r.Options, &resp)
2321  	return
2322  }
2323  
2324  // Create a new subscriber for a given resource.
2325  func (r User_Customer_OpenIdConnect) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
2326  	params := []interface{}{
2327  		keyName,
2328  		resourceTableId,
2329  	}
2330  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "deactivateNotificationSubscriber", params, &r.Options, &resp)
2331  	return
2332  }
2333  
2334  // 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.
2335  func (r User_Customer_OpenIdConnect) DeclineInvitation(providerType *string, registrationCode *string) (err error) {
2336  	var resp datatypes.Void
2337  	params := []interface{}{
2338  		providerType,
2339  		registrationCode,
2340  	}
2341  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "declineInvitation", params, &r.Options, &resp)
2342  	return
2343  }
2344  
2345  // 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.
2346  func (r User_Customer_OpenIdConnect) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) {
2347  	params := []interface{}{
2348  		templateObject,
2349  	}
2350  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObject", params, &r.Options, &resp)
2351  	return
2352  }
2353  
2354  // 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.
2355  func (r User_Customer_OpenIdConnect) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) {
2356  	params := []interface{}{
2357  		templateObjects,
2358  	}
2359  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObjects", params, &r.Options, &resp)
2360  	return
2361  }
2362  
2363  // no documentation yet
2364  func (r User_Customer_OpenIdConnect) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) {
2365  	params := []interface{}{
2366  		profileName,
2367  		containerKeyname,
2368  		preferenceKeyname,
2369  	}
2370  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "findUserPreference", params, &r.Options, &resp)
2371  	return
2372  }
2373  
2374  // Retrieve The customer account that a user belongs to.
2375  func (r User_Customer_OpenIdConnect) GetAccount() (resp datatypes.Account, err error) {
2376  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAccount", nil, &r.Options, &resp)
2377  	return
2378  }
2379  
2380  // Retrieve
2381  func (r User_Customer_OpenIdConnect) GetActions() (resp []datatypes.User_Permission_Action, err error) {
2382  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActions", nil, &r.Options, &resp)
2383  	return
2384  }
2385  
2386  // 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.
2387  func (r User_Customer_OpenIdConnect) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) {
2388  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp)
2389  	return
2390  }
2391  
2392  // Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets.
2393  func (r User_Customer_OpenIdConnect) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) {
2394  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAdditionalEmails", nil, &r.Options, &resp)
2395  	return
2396  }
2397  
2398  // no documentation yet
2399  func (r User_Customer_OpenIdConnect) GetAgentImpersonationToken() (resp string, err error) {
2400  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAgentImpersonationToken", nil, &r.Options, &resp)
2401  	return
2402  }
2403  
2404  // no documentation yet
2405  func (r User_Customer_OpenIdConnect) GetAllowedDedicatedHostIds() (resp []int, err error) {
2406  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedDedicatedHostIds", nil, &r.Options, &resp)
2407  	return
2408  }
2409  
2410  // no documentation yet
2411  func (r User_Customer_OpenIdConnect) GetAllowedHardwareIds() (resp []int, err error) {
2412  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedHardwareIds", nil, &r.Options, &resp)
2413  	return
2414  }
2415  
2416  // no documentation yet
2417  func (r User_Customer_OpenIdConnect) GetAllowedVirtualGuestIds() (resp []int, err error) {
2418  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedVirtualGuestIds", nil, &r.Options, &resp)
2419  	return
2420  }
2421  
2422  // Retrieve A portal user's API Authentication keys. There is a max limit of one API key per user.
2423  func (r User_Customer_OpenIdConnect) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) {
2424  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getApiAuthenticationKeys", nil, &r.Options, &resp)
2425  	return
2426  }
2427  
2428  // This method generate user authentication token and return [[SoftLayer_Container_User_Authentication_Token]] object which will be used to authenticate user to login to SoftLayer customer portal.
2429  func (r User_Customer_OpenIdConnect) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) {
2430  	params := []interface{}{
2431  		token,
2432  	}
2433  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAuthenticationToken", params, &r.Options, &resp)
2434  	return
2435  }
2436  
2437  // Retrieve A portal user's child users. Some portal users may not have child users.
2438  func (r User_Customer_OpenIdConnect) GetChildUsers() (resp []datatypes.User_Customer, err error) {
2439  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getChildUsers", nil, &r.Options, &resp)
2440  	return
2441  }
2442  
2443  // Retrieve An user's associated closed tickets.
2444  func (r User_Customer_OpenIdConnect) GetClosedTickets() (resp []datatypes.Ticket, err error) {
2445  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getClosedTickets", nil, &r.Options, &resp)
2446  	return
2447  }
2448  
2449  // Retrieve The dedicated hosts to which the user has been granted access.
2450  func (r User_Customer_OpenIdConnect) GetDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) {
2451  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDedicatedHosts", nil, &r.Options, &resp)
2452  	return
2453  }
2454  
2455  // This API gets the account associated with the default user for the OpenIdConnect identity that is linked to the current active SoftLayer user identity. When a single active user is found for that IAMid, it becomes the default user and the associated account is returned. When multiple default users are found only the first is preserved and the associated account is returned (remaining defaults see their default flag unset). If the current SoftLayer user identity isn't linked to any OpenIdConnect identity, or if none of the linked users were found as defaults, the API returns null. Invoke this only on IAMid-authenticated users.
2456  func (r User_Customer_OpenIdConnect) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) {
2457  	params := []interface{}{
2458  		providerType,
2459  	}
2460  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDefaultAccount", params, &r.Options, &resp)
2461  	return
2462  }
2463  
2464  // Retrieve The external authentication bindings that link an external identifier to a SoftLayer user.
2465  func (r User_Customer_OpenIdConnect) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) {
2466  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getExternalBindings", nil, &r.Options, &resp)
2467  	return
2468  }
2469  
2470  // Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal.
2471  func (r User_Customer_OpenIdConnect) GetHardware() (resp []datatypes.Hardware, err error) {
2472  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardware", nil, &r.Options, &resp)
2473  	return
2474  }
2475  
2476  // 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.
2477  func (r User_Customer_OpenIdConnect) GetHardwareCount() (resp int, err error) {
2478  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareCount", nil, &r.Options, &resp)
2479  	return
2480  }
2481  
2482  // 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'.
2483  func (r User_Customer_OpenIdConnect) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) {
2484  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareNotifications", nil, &r.Options, &resp)
2485  	return
2486  }
2487  
2488  // Retrieve Whether or not a user has acknowledged the support policy.
2489  func (r User_Customer_OpenIdConnect) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) {
2490  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp)
2491  	return
2492  }
2493  
2494  // Retrieve Permission granting the user access to all Dedicated Host devices on the account.
2495  func (r User_Customer_OpenIdConnect) GetHasFullDedicatedHostAccessFlag() (resp bool, err error) {
2496  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullDedicatedHostAccessFlag", nil, &r.Options, &resp)
2497  	return
2498  }
2499  
2500  // Retrieve Whether or not a portal user has access to all hardware on their account.
2501  func (r User_Customer_OpenIdConnect) GetHasFullHardwareAccessFlag() (resp bool, err error) {
2502  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp)
2503  	return
2504  }
2505  
2506  // Retrieve Whether or not a portal user has access to all virtual guests on their account.
2507  func (r User_Customer_OpenIdConnect) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) {
2508  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp)
2509  	return
2510  }
2511  
2512  // Retrieve Specifically relating the Customer instance to an IBMid. A Customer instance may or may not have an IBMid link.
2513  func (r User_Customer_OpenIdConnect) GetIbmIdLink() (resp datatypes.User_Customer_Link, err error) {
2514  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getIbmIdLink", nil, &r.Options, &resp)
2515  	return
2516  }
2517  
2518  // no documentation yet
2519  func (r User_Customer_OpenIdConnect) GetImpersonationToken() (resp string, err error) {
2520  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getImpersonationToken", nil, &r.Options, &resp)
2521  	return
2522  }
2523  
2524  // Retrieve Contains the definition of the layout profile.
2525  func (r User_Customer_OpenIdConnect) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) {
2526  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLayoutProfiles", nil, &r.Options, &resp)
2527  	return
2528  }
2529  
2530  // Retrieve A user's locale. Locale holds user's language and region information.
2531  func (r User_Customer_OpenIdConnect) GetLocale() (resp datatypes.Locale, err error) {
2532  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLocale", nil, &r.Options, &resp)
2533  	return
2534  }
2535  
2536  // 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.
2537  func (r User_Customer_OpenIdConnect) GetLoginAccountInfoOpenIdConnect(providerType *string, accessToken *string) (resp datatypes.Container_User_Customer_OpenIdConnect_LoginAccountInfo, err error) {
2538  	params := []interface{}{
2539  		providerType,
2540  		accessToken,
2541  	}
2542  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAccountInfoOpenIdConnect", params, &r.Options, &resp)
2543  	return
2544  }
2545  
2546  // Retrieve A user's attempts to log into the SoftLayer customer portal.
2547  func (r User_Customer_OpenIdConnect) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) {
2548  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAttempts", nil, &r.Options, &resp)
2549  	return
2550  }
2551  
2552  // 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.
2553  func (r User_Customer_OpenIdConnect) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) {
2554  	params := []interface{}{
2555  		request,
2556  	}
2557  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginToken", params, &r.Options, &resp)
2558  	return
2559  }
2560  
2561  // An OpenIdConnect identity, for example an IAMid, 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 active accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IAMid-authenticated users.
2562  func (r User_Customer_OpenIdConnect) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) {
2563  	params := []interface{}{
2564  		providerType,
2565  	}
2566  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getMappedAccounts", params, &r.Options, &resp)
2567  	return
2568  }
2569  
2570  // Retrieve Notification subscription records for the user.
2571  func (r User_Customer_OpenIdConnect) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) {
2572  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getNotificationSubscribers", nil, &r.Options, &resp)
2573  	return
2574  }
2575  
2576  // no documentation yet
2577  func (r User_Customer_OpenIdConnect) GetObject() (resp datatypes.User_Customer_OpenIdConnect, err error) {
2578  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getObject", nil, &r.Options, &resp)
2579  	return
2580  }
2581  
2582  // 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.
2583  func (r User_Customer_OpenIdConnect) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) {
2584  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdConnectMigrationState", nil, &r.Options, &resp)
2585  	return
2586  }
2587  
2588  // no documentation yet
2589  func (r User_Customer_OpenIdConnect) GetOpenIdRegistrationInfoFromCode(providerType *string, registrationCode *string) (resp datatypes.Account_Authentication_OpenIdConnect_RegistrationInformation, err error) {
2590  	params := []interface{}{
2591  		providerType,
2592  		registrationCode,
2593  	}
2594  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdRegistrationInfoFromCode", params, &r.Options, &resp)
2595  	return
2596  }
2597  
2598  // Retrieve An user's associated open tickets.
2599  func (r User_Customer_OpenIdConnect) GetOpenTickets() (resp []datatypes.Ticket, err error) {
2600  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenTickets", nil, &r.Options, &resp)
2601  	return
2602  }
2603  
2604  // Retrieve A portal user's vpn accessible subnets.
2605  func (r User_Customer_OpenIdConnect) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) {
2606  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOverrides", nil, &r.Options, &resp)
2607  	return
2608  }
2609  
2610  // 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.
2611  func (r User_Customer_OpenIdConnect) GetParent() (resp datatypes.User_Customer, err error) {
2612  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getParent", nil, &r.Options, &resp)
2613  	return
2614  }
2615  
2616  // no documentation yet
2617  func (r User_Customer_OpenIdConnect) GetPasswordRequirements(isVpn *bool) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
2618  	params := []interface{}{
2619  		isVpn,
2620  	}
2621  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPasswordRequirements", params, &r.Options, &resp)
2622  	return
2623  }
2624  
2625  // Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API.
2626  func (r User_Customer_OpenIdConnect) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
2627  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPermissions", nil, &r.Options, &resp)
2628  	return
2629  }
2630  
2631  // 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.
2632  func (r User_Customer_OpenIdConnect) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
2633  	params := []interface{}{
2634  		username,
2635  		password,
2636  		securityQuestionId,
2637  		securityQuestionAnswer,
2638  	}
2639  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginToken", params, &r.Options, &resp)
2640  	return
2641  }
2642  
2643  // 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.
2644  // Deprecated: This function has been marked as deprecated.
2645  func (r User_Customer_OpenIdConnect) GetPortalLoginTokenOpenIdConnect(providerType *string, accessToken *string, accountId *int, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
2646  	params := []interface{}{
2647  		providerType,
2648  		accessToken,
2649  		accountId,
2650  		securityQuestionId,
2651  		securityQuestionAnswer,
2652  	}
2653  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginTokenOpenIdConnect", params, &r.Options, &resp)
2654  	return
2655  }
2656  
2657  // 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.
2658  func (r User_Customer_OpenIdConnect) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) {
2659  	params := []interface{}{
2660  		preferenceTypeKeyName,
2661  	}
2662  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreference", params, &r.Options, &resp)
2663  	return
2664  }
2665  
2666  // 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.
2667  func (r User_Customer_OpenIdConnect) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) {
2668  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferenceTypes", nil, &r.Options, &resp)
2669  	return
2670  }
2671  
2672  // Retrieve Data type contains a single user preference to a specific preference type.
2673  func (r User_Customer_OpenIdConnect) GetPreferences() (resp []datatypes.User_Preference, err error) {
2674  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferences", nil, &r.Options, &resp)
2675  	return
2676  }
2677  
2678  // Retrieve the authentication requirements for an outstanding password set/reset request.  The requirements returned in the same SoftLayer_Container_User_Customer_PasswordSet container which is provided as a parameter into this request.  The SoftLayer_Container_User_Customer_PasswordSet::authenticationMethods array will contain an entry for each authentication method required for the user.  See SoftLayer_Container_User_Customer_PasswordSet for more details.
2679  //
2680  // If the user has required authentication methods, then authentication information will be supplied to the SoftLayer_User_Customer::processPasswordSetRequest method within this same SoftLayer_Container_User_Customer_PasswordSet container.  All existing information in the container must continue to exist in the container to complete the password set/reset process.
2681  func (r User_Customer_OpenIdConnect) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
2682  	params := []interface{}{
2683  		passwordSet,
2684  	}
2685  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRequirementsForPasswordSet", params, &r.Options, &resp)
2686  	return
2687  }
2688  
2689  // Retrieve
2690  func (r User_Customer_OpenIdConnect) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
2691  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRoles", nil, &r.Options, &resp)
2692  	return
2693  }
2694  
2695  // 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.
2696  func (r User_Customer_OpenIdConnect) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) {
2697  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSecurityAnswers", nil, &r.Options, &resp)
2698  	return
2699  }
2700  
2701  // Retrieve A user's notification subscription records.
2702  func (r User_Customer_OpenIdConnect) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) {
2703  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSubscribers", nil, &r.Options, &resp)
2704  	return
2705  }
2706  
2707  // Retrieve A user's successful attempts to log into the SoftLayer customer portal.
2708  func (r User_Customer_OpenIdConnect) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
2709  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSuccessfulLogins", nil, &r.Options, &resp)
2710  	return
2711  }
2712  
2713  // Retrieve Whether or not a user is required to acknowledge the support policy for portal access.
2714  func (r User_Customer_OpenIdConnect) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) {
2715  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp)
2716  	return
2717  }
2718  
2719  // no documentation yet
2720  func (r User_Customer_OpenIdConnect) GetSupportPolicyDocument() (resp []byte, err error) {
2721  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyDocument", nil, &r.Options, &resp)
2722  	return
2723  }
2724  
2725  // no documentation yet
2726  func (r User_Customer_OpenIdConnect) GetSupportPolicyName() (resp string, err error) {
2727  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyName", nil, &r.Options, &resp)
2728  	return
2729  }
2730  
2731  // no documentation yet
2732  func (r User_Customer_OpenIdConnect) GetSupportedLocales() (resp []datatypes.Locale, err error) {
2733  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportedLocales", nil, &r.Options, &resp)
2734  	return
2735  }
2736  
2737  // Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal.
2738  func (r User_Customer_OpenIdConnect) GetSurveyRequiredFlag() (resp bool, err error) {
2739  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveyRequiredFlag", nil, &r.Options, &resp)
2740  	return
2741  }
2742  
2743  // Retrieve The surveys that a user has taken in the SoftLayer customer portal.
2744  func (r User_Customer_OpenIdConnect) GetSurveys() (resp []datatypes.Survey, err error) {
2745  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveys", nil, &r.Options, &resp)
2746  	return
2747  }
2748  
2749  // Retrieve An user's associated tickets.
2750  func (r User_Customer_OpenIdConnect) GetTickets() (resp []datatypes.Ticket, err error) {
2751  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTickets", nil, &r.Options, &resp)
2752  	return
2753  }
2754  
2755  // Retrieve A portal user's time zone.
2756  func (r User_Customer_OpenIdConnect) GetTimezone() (resp datatypes.Locale_Timezone, err error) {
2757  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTimezone", nil, &r.Options, &resp)
2758  	return
2759  }
2760  
2761  // Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal.
2762  func (r User_Customer_OpenIdConnect) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
2763  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUnsuccessfulLogins", nil, &r.Options, &resp)
2764  	return
2765  }
2766  
2767  // 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.
2768  func (r User_Customer_OpenIdConnect) GetUserForUnifiedInvitation(openIdConnectUserId *string, uniqueIdentifier *string, searchInvitationsNotLinksFlag *string, accountId *string) (resp datatypes.User_Customer_OpenIdConnect, err error) {
2769  	params := []interface{}{
2770  		openIdConnectUserId,
2771  		uniqueIdentifier,
2772  		searchInvitationsNotLinksFlag,
2773  		accountId,
2774  	}
2775  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserForUnifiedInvitation", params, &r.Options, &resp)
2776  	return
2777  }
2778  
2779  // Retrieve a user id using a password token provided to the user in an email generated by the SoftLayer_User_Customer::initiatePortalPasswordChange request. Password recovery keys are valid for 24 hours after they're generated.
2780  //
2781  // 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.  Once the user id is known, then the SoftLayer_User_Customer object can be retrieved which is necessary to complete the process to set or reset a user's password.
2782  func (r User_Customer_OpenIdConnect) GetUserIdForPasswordSet(key *string) (resp int, err error) {
2783  	params := []interface{}{
2784  		key,
2785  	}
2786  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserIdForPasswordSet", params, &r.Options, &resp)
2787  	return
2788  }
2789  
2790  // Retrieve User customer link with IBMid and IAMid.
2791  func (r User_Customer_OpenIdConnect) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) {
2792  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserLinks", nil, &r.Options, &resp)
2793  	return
2794  }
2795  
2796  // no documentation yet
2797  func (r User_Customer_OpenIdConnect) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) {
2798  	params := []interface{}{
2799  		profileName,
2800  		containerKeyname,
2801  	}
2802  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserPreferences", params, &r.Options, &resp)
2803  	return
2804  }
2805  
2806  // Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network.
2807  func (r User_Customer_OpenIdConnect) GetUserStatus() (resp datatypes.User_Customer_Status, err error) {
2808  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserStatus", nil, &r.Options, &resp)
2809  	return
2810  }
2811  
2812  // 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.
2813  func (r User_Customer_OpenIdConnect) GetVirtualGuestCount() (resp int, err error) {
2814  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuestCount", nil, &r.Options, &resp)
2815  	return
2816  }
2817  
2818  // 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.
2819  func (r User_Customer_OpenIdConnect) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) {
2820  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuests", nil, &r.Options, &resp)
2821  	return
2822  }
2823  
2824  // no documentation yet
2825  func (r User_Customer_OpenIdConnect) InTerminalStatus() (resp bool, err error) {
2826  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inTerminalStatus", nil, &r.Options, &resp)
2827  	return
2828  }
2829  
2830  // 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.
2831  //
2832  // 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.
2833  //
2834  // Due to security reasons, the number of reset requests per username are limited within a undisclosed timeframe.
2835  func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChange(username *string) (resp bool, err error) {
2836  	params := []interface{}{
2837  		username,
2838  	}
2839  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChange", params, &r.Options, &resp)
2840  	return
2841  }
2842  
2843  // 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.
2844  func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) {
2845  	params := []interface{}{
2846  		username,
2847  	}
2848  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp)
2849  	return
2850  }
2851  
2852  // Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error.
2853  func (r User_Customer_OpenIdConnect) InviteUserToLinkOpenIdConnect(providerType *string) (err error) {
2854  	var resp datatypes.Void
2855  	params := []interface{}{
2856  		providerType,
2857  	}
2858  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp)
2859  	return
2860  }
2861  
2862  // 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.
2863  // Deprecated: This function has been marked as deprecated.
2864  func (r User_Customer_OpenIdConnect) IsMasterUser() (resp bool, err error) {
2865  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isMasterUser", nil, &r.Options, &resp)
2866  	return
2867  }
2868  
2869  // Determine if a string is the given user's login password to the SoftLayer customer portal.
2870  func (r User_Customer_OpenIdConnect) IsValidPortalPassword(password *string) (resp bool, err error) {
2871  	params := []interface{}{
2872  		password,
2873  	}
2874  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isValidPortalPassword", params, &r.Options, &resp)
2875  	return
2876  }
2877  
2878  // 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.
2879  func (r User_Customer_OpenIdConnect) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
2880  	params := []interface{}{
2881  		authenticationContainer,
2882  	}
2883  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "performExternalAuthentication", params, &r.Options, &resp)
2884  	return
2885  }
2886  
2887  // 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 request. Password recovery keys are valid for 24 hours after they're generated.
2888  //
2889  // If the user has required authentication methods as specified by in the SoftLayer_Container_User_Customer_PasswordSet container returned from the SoftLayer_User_Customer::getRequirementsForPasswordSet request, then additional requests must be made to processPasswordSetRequest to authenticate the user before changing the password.  First, if the user has security questions set on their profile, they will be required to answer one of their questions correctly. Next, if the user has Verisign or Google Authentication on their account, they must authenticate according to the two-factor provider.  All of this authentication is done using the SoftLayer_Container_User_Customer_PasswordSet container.
2890  //
2891  // User portal passwords must match the following restrictions. Portal passwords must...
2892  // * ...be over eight characters long.
2893  // * ...be under twenty characters long.
2894  // * ...contain at least one uppercase letter
2895  // * ...contain at least one lowercase letter
2896  // * ...contain at least one number
2897  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
2898  // * ...not match your username
2899  func (r User_Customer_OpenIdConnect) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
2900  	params := []interface{}{
2901  		passwordSet,
2902  		authenticationContainer,
2903  	}
2904  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "processPasswordSetRequest", params, &r.Options, &resp)
2905  	return
2906  }
2907  
2908  // 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.
2909  //
2910  // 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.
2911  func (r User_Customer_OpenIdConnect) RemoveAllDedicatedHostAccessForThisUser() (resp bool, err error) {
2912  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllDedicatedHostAccessForThisUser", nil, &r.Options, &resp)
2913  	return
2914  }
2915  
2916  // 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.
2917  //
2918  // 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.
2919  func (r User_Customer_OpenIdConnect) RemoveAllHardwareAccessForThisUser() (resp bool, err error) {
2920  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp)
2921  	return
2922  }
2923  
2924  // 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.
2925  //
2926  // 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.
2927  func (r User_Customer_OpenIdConnect) RemoveAllVirtualAccessForThisUser() (resp bool, err error) {
2928  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp)
2929  	return
2930  }
2931  
2932  // Remove a user's API authentication key, removing that user's access to query the SoftLayer API.
2933  func (r User_Customer_OpenIdConnect) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) {
2934  	params := []interface{}{
2935  		keyId,
2936  	}
2937  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeApiAuthenticationKey", params, &r.Options, &resp)
2938  	return
2939  }
2940  
2941  // 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.
2942  //
2943  // 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.
2944  //
2945  // If the user has full dedicatedHost access, then it will provide access to "ALL but passed in" dedicatedHost ids.
2946  func (r User_Customer_OpenIdConnect) RemoveBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
2947  	params := []interface{}{
2948  		dedicatedHostIds,
2949  	}
2950  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkDedicatedHostAccess", params, &r.Options, &resp)
2951  	return
2952  }
2953  
2954  // 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 to remove then removeBulkHardwareAccess() returns true.
2955  //
2956  // 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.
2957  //
2958  // If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids.
2959  func (r User_Customer_OpenIdConnect) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
2960  	params := []interface{}{
2961  		hardwareIds,
2962  	}
2963  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkHardwareAccess", params, &r.Options, &resp)
2964  	return
2965  }
2966  
2967  // Remove (revoke) multiple permissions from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
2968  //
2969  // Users can grant or revoke permissions to their child users, but not to themselves. An account's master has all portal permissions and can grant permissions for any of the other users on their account.
2970  //
2971  // If the cascadePermissionsFlag is set to true, then removing the permissions from a user will cascade down the child hierarchy and remove the permissions from this user along with all child users who also have the permission.
2972  //
2973  // If the cascadePermissionsFlag is not provided or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
2974  //
2975  // 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.
2976  func (r User_Customer_OpenIdConnect) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
2977  	params := []interface{}{
2978  		permissions,
2979  		cascadePermissionsFlag,
2980  	}
2981  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkPortalPermission", params, &r.Options, &resp)
2982  	return
2983  }
2984  
2985  // no documentation yet
2986  func (r User_Customer_OpenIdConnect) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
2987  	var resp datatypes.Void
2988  	params := []interface{}{
2989  		roles,
2990  	}
2991  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkRoles", params, &r.Options, &resp)
2992  	return
2993  }
2994  
2995  // 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.
2996  //
2997  // 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.
2998  func (r User_Customer_OpenIdConnect) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
2999  	params := []interface{}{
3000  		virtualGuestIds,
3001  	}
3002  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkVirtualGuestAccess", params, &r.Options, &resp)
3003  	return
3004  }
3005  
3006  // 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.
3007  //
3008  // 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.
3009  func (r User_Customer_OpenIdConnect) RemoveDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
3010  	params := []interface{}{
3011  		dedicatedHostId,
3012  	}
3013  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeDedicatedHostAccess", params, &r.Options, &resp)
3014  	return
3015  }
3016  
3017  // no documentation yet
3018  func (r User_Customer_OpenIdConnect) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) {
3019  	params := []interface{}{
3020  		externalBinding,
3021  	}
3022  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeExternalBinding", params, &r.Options, &resp)
3023  	return
3024  }
3025  
3026  // 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.
3027  //
3028  // 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.
3029  func (r User_Customer_OpenIdConnect) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) {
3030  	params := []interface{}{
3031  		hardwareId,
3032  	}
3033  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeHardwareAccess", params, &r.Options, &resp)
3034  	return
3035  }
3036  
3037  // Remove (revoke) a permission from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
3038  //
3039  // 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.
3040  //
3041  // If the cascadePermissionsFlag is set to true, then removing the permission from a user will cascade down the child hierarchy and remove the permission from this user and all child users who also have the permission.
3042  //
3043  // If the cascadePermissionsFlag is not set or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
3044  //
3045  // 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.
3046  func (r User_Customer_OpenIdConnect) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
3047  	params := []interface{}{
3048  		permission,
3049  		cascadePermissionsFlag,
3050  	}
3051  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removePortalPermission", params, &r.Options, &resp)
3052  	return
3053  }
3054  
3055  // no documentation yet
3056  func (r User_Customer_OpenIdConnect) RemoveRole(role *datatypes.User_Permission_Role) (err error) {
3057  	var resp datatypes.Void
3058  	params := []interface{}{
3059  		role,
3060  	}
3061  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeRole", params, &r.Options, &resp)
3062  	return
3063  }
3064  
3065  // no documentation yet
3066  func (r User_Customer_OpenIdConnect) RemoveSecurityAnswers() (resp bool, err error) {
3067  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeSecurityAnswers", nil, &r.Options, &resp)
3068  	return
3069  }
3070  
3071  // 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.
3072  //
3073  // 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.
3074  func (r User_Customer_OpenIdConnect) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
3075  	params := []interface{}{
3076  		virtualGuestId,
3077  	}
3078  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeVirtualGuestAccess", params, &r.Options, &resp)
3079  	return
3080  }
3081  
3082  // This method will change the IBMid that a SoftLayer user is linked to, if we need to do that for some reason. It will do this by modifying the link to the desired new IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is already Bluemix linked. To reset a link for the Bluemix-linked user account, use resetOpenIdConnectLinkUnifiedUserManagementMode.
3083  func (r User_Customer_OpenIdConnect) ResetOpenIdConnectLink(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
3084  	var resp datatypes.Void
3085  	params := []interface{}{
3086  		providerType,
3087  		newIbmIdUsername,
3088  		removeSecuritySettings,
3089  	}
3090  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "resetOpenIdConnectLink", params, &r.Options, &resp)
3091  	return
3092  }
3093  
3094  // This method will change the IBMid that a SoftLayer master user is linked to, if we need to do that for some reason. It will do this by unlinking the new owner IBMid from its current user association in this account, if there is one (note that the new owner IBMid is not required to already be a member of the IMS account). Then it will modify the existing IBMid link for the master user to use the new owner IBMid-realm IAMid. At this point, if the new owner IBMid isn't already a member of the PaaS account, it will attempt to add it. As a last step, it will call PaaS to modify the owner on that side, if necessary.  Only when all those steps are complete, it will commit the IMS-side DB changes.  Then, it will clean up the SoftLayer user that was linked to the new owner IBMid (this user became unlinked as the first step in this process).  It will also call BSS to delete the old owner IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is not Bluemix linked. To reset a link for the user account not linked to Bluemix, use resetOpenIdConnectLink.
3095  func (r User_Customer_OpenIdConnect) ResetOpenIdConnectLinkUnifiedUserManagementMode(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
3096  	var resp datatypes.Void
3097  	params := []interface{}{
3098  		providerType,
3099  		newIbmIdUsername,
3100  		removeSecuritySettings,
3101  	}
3102  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "resetOpenIdConnectLinkUnifiedUserManagementMode", params, &r.Options, &resp)
3103  	return
3104  }
3105  
3106  // no documentation yet
3107  func (r User_Customer_OpenIdConnect) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3108  	params := []interface{}{
3109  		accountId,
3110  		samlResponse,
3111  	}
3112  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlAuthenticate", params, &r.Options, &resp)
3113  	return
3114  }
3115  
3116  // no documentation yet
3117  func (r User_Customer_OpenIdConnect) SamlBeginAuthentication(accountId *int) (resp string, err error) {
3118  	params := []interface{}{
3119  		accountId,
3120  	}
3121  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginAuthentication", params, &r.Options, &resp)
3122  	return
3123  }
3124  
3125  // no documentation yet
3126  func (r User_Customer_OpenIdConnect) SamlBeginLogout() (resp string, err error) {
3127  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginLogout", nil, &r.Options, &resp)
3128  	return
3129  }
3130  
3131  // no documentation yet
3132  func (r User_Customer_OpenIdConnect) SamlLogout(samlResponse *string) (err error) {
3133  	var resp datatypes.Void
3134  	params := []interface{}{
3135  		samlResponse,
3136  	}
3137  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlLogout", params, &r.Options, &resp)
3138  	return
3139  }
3140  
3141  // no documentation yet
3142  func (r User_Customer_OpenIdConnect) SelfPasswordChange(currentPassword *string, newPassword *string) (err error) {
3143  	var resp datatypes.Void
3144  	params := []interface{}{
3145  		currentPassword,
3146  		newPassword,
3147  	}
3148  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "selfPasswordChange", params, &r.Options, &resp)
3149  	return
3150  }
3151  
3152  // An OpenIdConnect identity, for example an IAMid, 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.
3153  func (r User_Customer_OpenIdConnect) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) {
3154  	params := []interface{}{
3155  		providerType,
3156  		accountId,
3157  	}
3158  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "setDefaultAccount", params, &r.Options, &resp)
3159  	return
3160  }
3161  
3162  // 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.
3163  func (r User_Customer_OpenIdConnect) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) {
3164  	params := []interface{}{
3165  		providerType,
3166  	}
3167  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp)
3168  	return
3169  }
3170  
3171  // This method allows the master user of an account to undo the designation of this user as an alternate master user.  This can not be applied to the true master user of the account.
3172  //
3173  // Note that this method, by itself, WILL NOT affect the IAM Policies granted this user.  This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner turns off an "alternate/auxiliary master user / account owner".
3174  func (r User_Customer_OpenIdConnect) TurnOffMasterUserPermissionCheckMode() (err error) {
3175  	var resp datatypes.Void
3176  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "turnOffMasterUserPermissionCheckMode", nil, &r.Options, &resp)
3177  	return
3178  }
3179  
3180  // This method allows the master user of an account to designate this user as an alternate master user.  Effectively this means that this user should have "all the same IMS permissions as a master user".
3181  //
3182  // Note that this method, by itself, WILL NOT affect the IAM Policies granted to this user. This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner designates an "alternate/auxiliary master user / account owner".
3183  func (r User_Customer_OpenIdConnect) TurnOnMasterUserPermissionCheckMode() (err error) {
3184  	var resp datatypes.Void
3185  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "turnOnMasterUserPermissionCheckMode", nil, &r.Options, &resp)
3186  	return
3187  }
3188  
3189  // 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.
3190  func (r User_Customer_OpenIdConnect) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) {
3191  	params := []interface{}{
3192  		notificationKeyName,
3193  		active,
3194  	}
3195  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateNotificationSubscriber", params, &r.Options, &resp)
3196  	return
3197  }
3198  
3199  // 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.
3200  func (r User_Customer_OpenIdConnect) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) {
3201  	params := []interface{}{
3202  		questions,
3203  		answers,
3204  	}
3205  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSecurityAnswers", params, &r.Options, &resp)
3206  	return
3207  }
3208  
3209  // 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'.
3210  func (r User_Customer_OpenIdConnect) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) {
3211  	params := []interface{}{
3212  		notificationKeyName,
3213  		deliveryMethodKeyNames,
3214  		active,
3215  	}
3216  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSubscriberDeliveryMethod", params, &r.Options, &resp)
3217  	return
3218  }
3219  
3220  // 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...
3221  // * ...be over eight characters long.
3222  // * ...be under twenty characters long.
3223  // * ...contain at least one uppercase letter
3224  // * ...contain at least one lowercase letter
3225  // * ...contain at least one number
3226  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ =
3227  // * ...not match your username
3228  // Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords.
3229  func (r User_Customer_OpenIdConnect) UpdateVpnPassword(password *string) (resp bool, err error) {
3230  	params := []interface{}{
3231  		password,
3232  	}
3233  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnPassword", params, &r.Options, &resp)
3234  	return
3235  }
3236  
3237  // Always call this function to enable changes when manually configuring VPN subnet access.
3238  func (r User_Customer_OpenIdConnect) UpdateVpnUser() (resp bool, err error) {
3239  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnUser", nil, &r.Options, &resp)
3240  	return
3241  }
3242  
3243  // This method validate the given authentication token using the user id by comparing it with the actual user authentication token and return [[SoftLayer_Container_User_Customer_Portal_Token]] object
3244  func (r User_Customer_OpenIdConnect) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3245  	params := []interface{}{
3246  		authenticationToken,
3247  	}
3248  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "validateAuthenticationToken", params, &r.Options, &resp)
3249  	return
3250  }
3251  
3252  // no documentation yet
3253  type User_Customer_OpenIdConnect_TrustedProfile struct {
3254  	Session session.SLSession
3255  	Options sl.Options
3256  }
3257  
3258  // GetUserCustomerOpenIdConnectTrustedProfileService returns an instance of the User_Customer_OpenIdConnect_TrustedProfile SoftLayer service
3259  func GetUserCustomerOpenIdConnectTrustedProfileService(sess session.SLSession) User_Customer_OpenIdConnect_TrustedProfile {
3260  	return User_Customer_OpenIdConnect_TrustedProfile{Session: sess}
3261  }
3262  
3263  func (r User_Customer_OpenIdConnect_TrustedProfile) Id(id int) User_Customer_OpenIdConnect_TrustedProfile {
3264  	r.Options.Id = &id
3265  	return r
3266  }
3267  
3268  func (r User_Customer_OpenIdConnect_TrustedProfile) Mask(mask string) User_Customer_OpenIdConnect_TrustedProfile {
3269  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3270  		mask = fmt.Sprintf("mask[%s]", mask)
3271  	}
3272  
3273  	r.Options.Mask = mask
3274  	return r
3275  }
3276  
3277  func (r User_Customer_OpenIdConnect_TrustedProfile) Filter(filter string) User_Customer_OpenIdConnect_TrustedProfile {
3278  	r.Options.Filter = filter
3279  	return r
3280  }
3281  
3282  func (r User_Customer_OpenIdConnect_TrustedProfile) Limit(limit int) User_Customer_OpenIdConnect_TrustedProfile {
3283  	r.Options.Limit = &limit
3284  	return r
3285  }
3286  
3287  func (r User_Customer_OpenIdConnect_TrustedProfile) Offset(offset int) User_Customer_OpenIdConnect_TrustedProfile {
3288  	r.Options.Offset = &offset
3289  	return r
3290  }
3291  
3292  // no documentation yet
3293  func (r User_Customer_OpenIdConnect_TrustedProfile) AcknowledgeSupportPolicy() (err error) {
3294  	var resp datatypes.Void
3295  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "acknowledgeSupportPolicy", nil, &r.Options, &resp)
3296  	return
3297  }
3298  
3299  // Completes invitation process for an OpenIdConnect user created by Bluemix Unified User Console.
3300  func (r User_Customer_OpenIdConnect_TrustedProfile) ActivateOpenIdConnectUser(verificationCode *string, userInfo *datatypes.User_Customer, iamId *string) (err error) {
3301  	var resp datatypes.Void
3302  	params := []interface{}{
3303  		verificationCode,
3304  		userInfo,
3305  		iamId,
3306  	}
3307  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "activateOpenIdConnectUser", params, &r.Options, &resp)
3308  	return
3309  }
3310  
3311  // Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the user's new API key. Each portal user is allowed only one API key.
3312  func (r User_Customer_OpenIdConnect_TrustedProfile) AddApiAuthenticationKey() (resp string, err error) {
3313  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addApiAuthenticationKey", nil, &r.Options, &resp)
3314  	return
3315  }
3316  
3317  // 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.
3318  //
3319  // 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.
3320  func (r User_Customer_OpenIdConnect_TrustedProfile) AddBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
3321  	params := []interface{}{
3322  		dedicatedHostIds,
3323  	}
3324  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addBulkDedicatedHostAccess", params, &r.Options, &resp)
3325  	return
3326  }
3327  
3328  // 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.
3329  //
3330  // 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.
3331  func (r User_Customer_OpenIdConnect_TrustedProfile) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
3332  	params := []interface{}{
3333  		hardwareIds,
3334  	}
3335  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addBulkHardwareAccess", params, &r.Options, &resp)
3336  	return
3337  }
3338  
3339  // Add multiple permissions to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
3340  //
3341  // 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.
3342  //
3343  // 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.
3344  func (r User_Customer_OpenIdConnect_TrustedProfile) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
3345  	params := []interface{}{
3346  		permissions,
3347  	}
3348  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addBulkPortalPermission", params, &r.Options, &resp)
3349  	return
3350  }
3351  
3352  // no documentation yet
3353  func (r User_Customer_OpenIdConnect_TrustedProfile) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
3354  	var resp datatypes.Void
3355  	params := []interface{}{
3356  		roles,
3357  	}
3358  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addBulkRoles", params, &r.Options, &resp)
3359  	return
3360  }
3361  
3362  // 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.
3363  //
3364  // 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.
3365  func (r User_Customer_OpenIdConnect_TrustedProfile) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
3366  	params := []interface{}{
3367  		virtualGuestIds,
3368  	}
3369  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addBulkVirtualGuestAccess", params, &r.Options, &resp)
3370  	return
3371  }
3372  
3373  // 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.
3374  //
3375  // 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.
3376  //
3377  // Only the USER_MANAGE permission is required to execute this.
3378  func (r User_Customer_OpenIdConnect_TrustedProfile) AddDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
3379  	params := []interface{}{
3380  		dedicatedHostId,
3381  	}
3382  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addDedicatedHostAccess", params, &r.Options, &resp)
3383  	return
3384  }
3385  
3386  // no documentation yet
3387  func (r User_Customer_OpenIdConnect_TrustedProfile) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) {
3388  	params := []interface{}{
3389  		externalBinding,
3390  	}
3391  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addExternalBinding", params, &r.Options, &resp)
3392  	return
3393  }
3394  
3395  // 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.
3396  //
3397  // 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.
3398  //
3399  // Only the USER_MANAGE permission is required to execute this.
3400  func (r User_Customer_OpenIdConnect_TrustedProfile) AddHardwareAccess(hardwareId *int) (resp bool, err error) {
3401  	params := []interface{}{
3402  		hardwareId,
3403  	}
3404  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addHardwareAccess", params, &r.Options, &resp)
3405  	return
3406  }
3407  
3408  // 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.
3409  func (r User_Customer_OpenIdConnect_TrustedProfile) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) {
3410  	params := []interface{}{
3411  		notificationKeyName,
3412  	}
3413  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addNotificationSubscriber", params, &r.Options, &resp)
3414  	return
3415  }
3416  
3417  // Add a permission to a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
3418  //
3419  // 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.
3420  //
3421  // 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.
3422  func (r User_Customer_OpenIdConnect_TrustedProfile) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
3423  	params := []interface{}{
3424  		permission,
3425  	}
3426  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addPortalPermission", params, &r.Options, &resp)
3427  	return
3428  }
3429  
3430  // no documentation yet
3431  func (r User_Customer_OpenIdConnect_TrustedProfile) AddRole(role *datatypes.User_Permission_Role) (err error) {
3432  	var resp datatypes.Void
3433  	params := []interface{}{
3434  		role,
3435  	}
3436  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addRole", params, &r.Options, &resp)
3437  	return
3438  }
3439  
3440  // 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.
3441  //
3442  // 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.
3443  //
3444  // Only the USER_MANAGE permission is required to execute this.
3445  func (r User_Customer_OpenIdConnect_TrustedProfile) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
3446  	params := []interface{}{
3447  		virtualGuestId,
3448  	}
3449  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "addVirtualGuestAccess", params, &r.Options, &resp)
3450  	return
3451  }
3452  
3453  // This method can be used in place of [[SoftLayer_User_Customer::editObject]] to change the parent user of this user.
3454  //
3455  // The new parent must be a user on the same account, and must not be a child of this user.  A user is not allowed to change their own parent.
3456  //
3457  // If the cascadeFlag is set to false, then an exception will be thrown if the new parent does not have all of the permissions that this user possesses.  If the cascadeFlag is set to true, then permissions will be removed from this user and the descendants of this user as necessary so that no children of the parent will have permissions that the parent does not possess. However, setting the cascadeFlag to true will not remove the access all device permissions from this user. The customer portal will need to be used to remove these permissions.
3458  func (r User_Customer_OpenIdConnect_TrustedProfile) AssignNewParentId(parentId *int, cascadePermissionsFlag *bool) (resp datatypes.User_Customer, err error) {
3459  	params := []interface{}{
3460  		parentId,
3461  		cascadePermissionsFlag,
3462  	}
3463  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "assignNewParentId", params, &r.Options, &resp)
3464  	return
3465  }
3466  
3467  // 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.
3468  func (r User_Customer_OpenIdConnect_TrustedProfile) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) {
3469  	params := []interface{}{
3470  		preferenceTypeKeyName,
3471  		value,
3472  	}
3473  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "changePreference", params, &r.Options, &resp)
3474  	return
3475  }
3476  
3477  // no documentation yet
3478  func (r User_Customer_OpenIdConnect_TrustedProfile) CompleteInvitationAfterLogin(providerType *string, accessToken *string, emailRegistrationCode *string) (err error) {
3479  	var resp datatypes.Void
3480  	params := []interface{}{
3481  		providerType,
3482  		accessToken,
3483  		emailRegistrationCode,
3484  	}
3485  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "completeInvitationAfterLogin", params, &r.Options, &resp)
3486  	return
3487  }
3488  
3489  // Create a new subscriber for a given resource.
3490  func (r User_Customer_OpenIdConnect_TrustedProfile) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
3491  	params := []interface{}{
3492  		keyName,
3493  		resourceTableId,
3494  	}
3495  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "createNotificationSubscriber", params, &r.Options, &resp)
3496  	return
3497  }
3498  
3499  // no documentation yet
3500  func (r User_Customer_OpenIdConnect_TrustedProfile) CreateObject(templateObject *datatypes.User_Customer_OpenIdConnect_TrustedProfile, password *string, vpnPassword *string) (resp datatypes.User_Customer_OpenIdConnect_TrustedProfile, err error) {
3501  	params := []interface{}{
3502  		templateObject,
3503  		password,
3504  		vpnPassword,
3505  	}
3506  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "createObject", params, &r.Options, &resp)
3507  	return
3508  }
3509  
3510  // no documentation yet
3511  func (r User_Customer_OpenIdConnect_TrustedProfile) CreateOpenIdConnectUserAndCompleteInvitation(providerType *string, user *datatypes.User_Customer, password *string, registrationCode *string) (err error) {
3512  	var resp datatypes.Void
3513  	params := []interface{}{
3514  		providerType,
3515  		user,
3516  		password,
3517  		registrationCode,
3518  	}
3519  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "createOpenIdConnectUserAndCompleteInvitation", params, &r.Options, &resp)
3520  	return
3521  }
3522  
3523  // 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'.
3524  func (r User_Customer_OpenIdConnect_TrustedProfile) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) {
3525  	params := []interface{}{
3526  		notificationKeyName,
3527  		deliveryMethodKeyNames,
3528  	}
3529  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "createSubscriberDeliveryMethods", params, &r.Options, &resp)
3530  	return
3531  }
3532  
3533  // Create a new subscriber for a given resource.
3534  func (r User_Customer_OpenIdConnect_TrustedProfile) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
3535  	params := []interface{}{
3536  		keyName,
3537  		resourceTableId,
3538  	}
3539  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "deactivateNotificationSubscriber", params, &r.Options, &resp)
3540  	return
3541  }
3542  
3543  // 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.
3544  func (r User_Customer_OpenIdConnect_TrustedProfile) DeclineInvitation(providerType *string, registrationCode *string) (err error) {
3545  	var resp datatypes.Void
3546  	params := []interface{}{
3547  		providerType,
3548  		registrationCode,
3549  	}
3550  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "declineInvitation", params, &r.Options, &resp)
3551  	return
3552  }
3553  
3554  // 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.
3555  func (r User_Customer_OpenIdConnect_TrustedProfile) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) {
3556  	params := []interface{}{
3557  		templateObject,
3558  	}
3559  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "editObject", params, &r.Options, &resp)
3560  	return
3561  }
3562  
3563  // 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.
3564  func (r User_Customer_OpenIdConnect_TrustedProfile) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) {
3565  	params := []interface{}{
3566  		templateObjects,
3567  	}
3568  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "editObjects", params, &r.Options, &resp)
3569  	return
3570  }
3571  
3572  // no documentation yet
3573  func (r User_Customer_OpenIdConnect_TrustedProfile) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) {
3574  	params := []interface{}{
3575  		profileName,
3576  		containerKeyname,
3577  		preferenceKeyname,
3578  	}
3579  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "findUserPreference", params, &r.Options, &resp)
3580  	return
3581  }
3582  
3583  // Retrieve The customer account that a user belongs to.
3584  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAccount() (resp datatypes.Account, err error) {
3585  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAccount", nil, &r.Options, &resp)
3586  	return
3587  }
3588  
3589  // Retrieve
3590  func (r User_Customer_OpenIdConnect_TrustedProfile) GetActions() (resp []datatypes.User_Permission_Action, err error) {
3591  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getActions", nil, &r.Options, &resp)
3592  	return
3593  }
3594  
3595  // 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.
3596  func (r User_Customer_OpenIdConnect_TrustedProfile) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) {
3597  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp)
3598  	return
3599  }
3600  
3601  // Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets.
3602  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) {
3603  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAdditionalEmails", nil, &r.Options, &resp)
3604  	return
3605  }
3606  
3607  // no documentation yet
3608  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAgentImpersonationToken() (resp string, err error) {
3609  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAgentImpersonationToken", nil, &r.Options, &resp)
3610  	return
3611  }
3612  
3613  // no documentation yet
3614  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAllowedDedicatedHostIds() (resp []int, err error) {
3615  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAllowedDedicatedHostIds", nil, &r.Options, &resp)
3616  	return
3617  }
3618  
3619  // no documentation yet
3620  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAllowedHardwareIds() (resp []int, err error) {
3621  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAllowedHardwareIds", nil, &r.Options, &resp)
3622  	return
3623  }
3624  
3625  // no documentation yet
3626  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAllowedVirtualGuestIds() (resp []int, err error) {
3627  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAllowedVirtualGuestIds", nil, &r.Options, &resp)
3628  	return
3629  }
3630  
3631  // Retrieve A portal user's API Authentication keys. There is a max limit of one API key per user.
3632  func (r User_Customer_OpenIdConnect_TrustedProfile) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) {
3633  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getApiAuthenticationKeys", nil, &r.Options, &resp)
3634  	return
3635  }
3636  
3637  // This method generate user authentication token and return [[SoftLayer_Container_User_Authentication_Token]] object which will be used to authenticate user to login to SoftLayer customer portal.
3638  func (r User_Customer_OpenIdConnect_TrustedProfile) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) {
3639  	params := []interface{}{
3640  		token,
3641  	}
3642  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getAuthenticationToken", params, &r.Options, &resp)
3643  	return
3644  }
3645  
3646  // Retrieve A portal user's child users. Some portal users may not have child users.
3647  func (r User_Customer_OpenIdConnect_TrustedProfile) GetChildUsers() (resp []datatypes.User_Customer, err error) {
3648  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getChildUsers", nil, &r.Options, &resp)
3649  	return
3650  }
3651  
3652  // Retrieve An user's associated closed tickets.
3653  func (r User_Customer_OpenIdConnect_TrustedProfile) GetClosedTickets() (resp []datatypes.Ticket, err error) {
3654  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getClosedTickets", nil, &r.Options, &resp)
3655  	return
3656  }
3657  
3658  // Retrieve The dedicated hosts to which the user has been granted access.
3659  func (r User_Customer_OpenIdConnect_TrustedProfile) GetDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) {
3660  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getDedicatedHosts", nil, &r.Options, &resp)
3661  	return
3662  }
3663  
3664  // This API gets the account associated with the default user for the OpenIdConnect identity that is linked to the current active SoftLayer user identity. When a single active user is found for that IAMid, it becomes the default user and the associated account is returned. When multiple default users are found only the first is preserved and the associated account is returned (remaining defaults see their default flag unset). If the current SoftLayer user identity isn't linked to any OpenIdConnect identity, or if none of the linked users were found as defaults, the API returns null. Invoke this only on IAMid-authenticated users.
3665  func (r User_Customer_OpenIdConnect_TrustedProfile) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) {
3666  	params := []interface{}{
3667  		providerType,
3668  	}
3669  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getDefaultAccount", params, &r.Options, &resp)
3670  	return
3671  }
3672  
3673  // Retrieve The external authentication bindings that link an external identifier to a SoftLayer user.
3674  func (r User_Customer_OpenIdConnect_TrustedProfile) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) {
3675  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getExternalBindings", nil, &r.Options, &resp)
3676  	return
3677  }
3678  
3679  // Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal.
3680  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHardware() (resp []datatypes.Hardware, err error) {
3681  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHardware", nil, &r.Options, &resp)
3682  	return
3683  }
3684  
3685  // 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.
3686  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHardwareCount() (resp int, err error) {
3687  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHardwareCount", nil, &r.Options, &resp)
3688  	return
3689  }
3690  
3691  // 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'.
3692  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) {
3693  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHardwareNotifications", nil, &r.Options, &resp)
3694  	return
3695  }
3696  
3697  // Retrieve Whether or not a user has acknowledged the support policy.
3698  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) {
3699  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp)
3700  	return
3701  }
3702  
3703  // Retrieve Permission granting the user access to all Dedicated Host devices on the account.
3704  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHasFullDedicatedHostAccessFlag() (resp bool, err error) {
3705  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHasFullDedicatedHostAccessFlag", nil, &r.Options, &resp)
3706  	return
3707  }
3708  
3709  // Retrieve Whether or not a portal user has access to all hardware on their account.
3710  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHasFullHardwareAccessFlag() (resp bool, err error) {
3711  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp)
3712  	return
3713  }
3714  
3715  // Retrieve Whether or not a portal user has access to all virtual guests on their account.
3716  func (r User_Customer_OpenIdConnect_TrustedProfile) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) {
3717  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp)
3718  	return
3719  }
3720  
3721  // Retrieve Specifically relating the Customer instance to an IBMid. A Customer instance may or may not have an IBMid link.
3722  func (r User_Customer_OpenIdConnect_TrustedProfile) GetIbmIdLink() (resp datatypes.User_Customer_Link, err error) {
3723  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getIbmIdLink", nil, &r.Options, &resp)
3724  	return
3725  }
3726  
3727  // no documentation yet
3728  func (r User_Customer_OpenIdConnect_TrustedProfile) GetImpersonationToken() (resp string, err error) {
3729  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getImpersonationToken", nil, &r.Options, &resp)
3730  	return
3731  }
3732  
3733  // Retrieve Contains the definition of the layout profile.
3734  func (r User_Customer_OpenIdConnect_TrustedProfile) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) {
3735  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getLayoutProfiles", nil, &r.Options, &resp)
3736  	return
3737  }
3738  
3739  // Retrieve A user's locale. Locale holds user's language and region information.
3740  func (r User_Customer_OpenIdConnect_TrustedProfile) GetLocale() (resp datatypes.Locale, err error) {
3741  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getLocale", nil, &r.Options, &resp)
3742  	return
3743  }
3744  
3745  // 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.
3746  func (r User_Customer_OpenIdConnect_TrustedProfile) GetLoginAccountInfoOpenIdConnect(providerType *string, accessToken *string) (resp datatypes.Container_User_Customer_OpenIdConnect_LoginAccountInfo, err error) {
3747  	params := []interface{}{
3748  		providerType,
3749  		accessToken,
3750  	}
3751  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getLoginAccountInfoOpenIdConnect", params, &r.Options, &resp)
3752  	return
3753  }
3754  
3755  // Retrieve A user's attempts to log into the SoftLayer customer portal.
3756  func (r User_Customer_OpenIdConnect_TrustedProfile) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) {
3757  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getLoginAttempts", nil, &r.Options, &resp)
3758  	return
3759  }
3760  
3761  // 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.
3762  func (r User_Customer_OpenIdConnect_TrustedProfile) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) {
3763  	params := []interface{}{
3764  		request,
3765  	}
3766  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getLoginToken", params, &r.Options, &resp)
3767  	return
3768  }
3769  
3770  // An OpenIdConnect identity, for example an IAMid, 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 active accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IAMid-authenticated users.
3771  func (r User_Customer_OpenIdConnect_TrustedProfile) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) {
3772  	params := []interface{}{
3773  		providerType,
3774  	}
3775  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getMappedAccounts", params, &r.Options, &resp)
3776  	return
3777  }
3778  
3779  // Retrieve Notification subscription records for the user.
3780  func (r User_Customer_OpenIdConnect_TrustedProfile) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) {
3781  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getNotificationSubscribers", nil, &r.Options, &resp)
3782  	return
3783  }
3784  
3785  // no documentation yet
3786  func (r User_Customer_OpenIdConnect_TrustedProfile) GetObject() (resp datatypes.User_Customer_OpenIdConnect_TrustedProfile, err error) {
3787  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getObject", nil, &r.Options, &resp)
3788  	return
3789  }
3790  
3791  // 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.
3792  func (r User_Customer_OpenIdConnect_TrustedProfile) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) {
3793  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getOpenIdConnectMigrationState", nil, &r.Options, &resp)
3794  	return
3795  }
3796  
3797  // no documentation yet
3798  func (r User_Customer_OpenIdConnect_TrustedProfile) GetOpenIdRegistrationInfoFromCode(providerType *string, registrationCode *string) (resp datatypes.Account_Authentication_OpenIdConnect_RegistrationInformation, err error) {
3799  	params := []interface{}{
3800  		providerType,
3801  		registrationCode,
3802  	}
3803  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getOpenIdRegistrationInfoFromCode", params, &r.Options, &resp)
3804  	return
3805  }
3806  
3807  // Retrieve An user's associated open tickets.
3808  func (r User_Customer_OpenIdConnect_TrustedProfile) GetOpenTickets() (resp []datatypes.Ticket, err error) {
3809  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getOpenTickets", nil, &r.Options, &resp)
3810  	return
3811  }
3812  
3813  // Retrieve A portal user's vpn accessible subnets.
3814  func (r User_Customer_OpenIdConnect_TrustedProfile) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) {
3815  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getOverrides", nil, &r.Options, &resp)
3816  	return
3817  }
3818  
3819  // 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.
3820  func (r User_Customer_OpenIdConnect_TrustedProfile) GetParent() (resp datatypes.User_Customer, err error) {
3821  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getParent", nil, &r.Options, &resp)
3822  	return
3823  }
3824  
3825  // no documentation yet
3826  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPasswordRequirements(isVpn *bool) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
3827  	params := []interface{}{
3828  		isVpn,
3829  	}
3830  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPasswordRequirements", params, &r.Options, &resp)
3831  	return
3832  }
3833  
3834  // Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API.
3835  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
3836  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPermissions", nil, &r.Options, &resp)
3837  	return
3838  }
3839  
3840  // 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.
3841  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3842  	params := []interface{}{
3843  		username,
3844  		password,
3845  		securityQuestionId,
3846  		securityQuestionAnswer,
3847  	}
3848  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPortalLoginToken", params, &r.Options, &resp)
3849  	return
3850  }
3851  
3852  // 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.
3853  // Deprecated: This function has been marked as deprecated.
3854  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPortalLoginTokenOpenIdConnect(providerType *string, accessToken *string, accountId *int, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3855  	params := []interface{}{
3856  		providerType,
3857  		accessToken,
3858  		accountId,
3859  		securityQuestionId,
3860  		securityQuestionAnswer,
3861  	}
3862  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPortalLoginTokenOpenIdConnect", params, &r.Options, &resp)
3863  	return
3864  }
3865  
3866  // 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.
3867  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) {
3868  	params := []interface{}{
3869  		preferenceTypeKeyName,
3870  	}
3871  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPreference", params, &r.Options, &resp)
3872  	return
3873  }
3874  
3875  // 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.
3876  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) {
3877  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPreferenceTypes", nil, &r.Options, &resp)
3878  	return
3879  }
3880  
3881  // Retrieve Data type contains a single user preference to a specific preference type.
3882  func (r User_Customer_OpenIdConnect_TrustedProfile) GetPreferences() (resp []datatypes.User_Preference, err error) {
3883  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getPreferences", nil, &r.Options, &resp)
3884  	return
3885  }
3886  
3887  // Retrieve the authentication requirements for an outstanding password set/reset request.  The requirements returned in the same SoftLayer_Container_User_Customer_PasswordSet container which is provided as a parameter into this request.  The SoftLayer_Container_User_Customer_PasswordSet::authenticationMethods array will contain an entry for each authentication method required for the user.  See SoftLayer_Container_User_Customer_PasswordSet for more details.
3888  //
3889  // If the user has required authentication methods, then authentication information will be supplied to the SoftLayer_User_Customer::processPasswordSetRequest method within this same SoftLayer_Container_User_Customer_PasswordSet container.  All existing information in the container must continue to exist in the container to complete the password set/reset process.
3890  func (r User_Customer_OpenIdConnect_TrustedProfile) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
3891  	params := []interface{}{
3892  		passwordSet,
3893  	}
3894  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getRequirementsForPasswordSet", params, &r.Options, &resp)
3895  	return
3896  }
3897  
3898  // Retrieve
3899  func (r User_Customer_OpenIdConnect_TrustedProfile) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
3900  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getRoles", nil, &r.Options, &resp)
3901  	return
3902  }
3903  
3904  // 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.
3905  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) {
3906  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSecurityAnswers", nil, &r.Options, &resp)
3907  	return
3908  }
3909  
3910  // Retrieve A user's notification subscription records.
3911  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) {
3912  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSubscribers", nil, &r.Options, &resp)
3913  	return
3914  }
3915  
3916  // Retrieve A user's successful attempts to log into the SoftLayer customer portal.
3917  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
3918  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSuccessfulLogins", nil, &r.Options, &resp)
3919  	return
3920  }
3921  
3922  // Retrieve Whether or not a user is required to acknowledge the support policy for portal access.
3923  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) {
3924  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp)
3925  	return
3926  }
3927  
3928  // no documentation yet
3929  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSupportPolicyDocument() (resp []byte, err error) {
3930  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSupportPolicyDocument", nil, &r.Options, &resp)
3931  	return
3932  }
3933  
3934  // no documentation yet
3935  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSupportPolicyName() (resp string, err error) {
3936  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSupportPolicyName", nil, &r.Options, &resp)
3937  	return
3938  }
3939  
3940  // no documentation yet
3941  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSupportedLocales() (resp []datatypes.Locale, err error) {
3942  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSupportedLocales", nil, &r.Options, &resp)
3943  	return
3944  }
3945  
3946  // Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal.
3947  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSurveyRequiredFlag() (resp bool, err error) {
3948  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSurveyRequiredFlag", nil, &r.Options, &resp)
3949  	return
3950  }
3951  
3952  // Retrieve The surveys that a user has taken in the SoftLayer customer portal.
3953  func (r User_Customer_OpenIdConnect_TrustedProfile) GetSurveys() (resp []datatypes.Survey, err error) {
3954  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getSurveys", nil, &r.Options, &resp)
3955  	return
3956  }
3957  
3958  // Retrieve An user's associated tickets.
3959  func (r User_Customer_OpenIdConnect_TrustedProfile) GetTickets() (resp []datatypes.Ticket, err error) {
3960  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getTickets", nil, &r.Options, &resp)
3961  	return
3962  }
3963  
3964  // Retrieve A portal user's time zone.
3965  func (r User_Customer_OpenIdConnect_TrustedProfile) GetTimezone() (resp datatypes.Locale_Timezone, err error) {
3966  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getTimezone", nil, &r.Options, &resp)
3967  	return
3968  }
3969  
3970  // Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal.
3971  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
3972  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUnsuccessfulLogins", nil, &r.Options, &resp)
3973  	return
3974  }
3975  
3976  // 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.
3977  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUserForUnifiedInvitation(openIdConnectUserId *string, uniqueIdentifier *string, searchInvitationsNotLinksFlag *string, accountId *string) (resp datatypes.User_Customer_OpenIdConnect, err error) {
3978  	params := []interface{}{
3979  		openIdConnectUserId,
3980  		uniqueIdentifier,
3981  		searchInvitationsNotLinksFlag,
3982  		accountId,
3983  	}
3984  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUserForUnifiedInvitation", params, &r.Options, &resp)
3985  	return
3986  }
3987  
3988  // Retrieve a user id using a password token provided to the user in an email generated by the SoftLayer_User_Customer::initiatePortalPasswordChange request. Password recovery keys are valid for 24 hours after they're generated.
3989  //
3990  // 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.  Once the user id is known, then the SoftLayer_User_Customer object can be retrieved which is necessary to complete the process to set or reset a user's password.
3991  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUserIdForPasswordSet(key *string) (resp int, err error) {
3992  	params := []interface{}{
3993  		key,
3994  	}
3995  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUserIdForPasswordSet", params, &r.Options, &resp)
3996  	return
3997  }
3998  
3999  // Retrieve User customer link with IBMid and IAMid.
4000  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) {
4001  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUserLinks", nil, &r.Options, &resp)
4002  	return
4003  }
4004  
4005  // no documentation yet
4006  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) {
4007  	params := []interface{}{
4008  		profileName,
4009  		containerKeyname,
4010  	}
4011  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUserPreferences", params, &r.Options, &resp)
4012  	return
4013  }
4014  
4015  // Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network.
4016  func (r User_Customer_OpenIdConnect_TrustedProfile) GetUserStatus() (resp datatypes.User_Customer_Status, err error) {
4017  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getUserStatus", nil, &r.Options, &resp)
4018  	return
4019  }
4020  
4021  // 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.
4022  func (r User_Customer_OpenIdConnect_TrustedProfile) GetVirtualGuestCount() (resp int, err error) {
4023  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getVirtualGuestCount", nil, &r.Options, &resp)
4024  	return
4025  }
4026  
4027  // 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.
4028  func (r User_Customer_OpenIdConnect_TrustedProfile) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) {
4029  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "getVirtualGuests", nil, &r.Options, &resp)
4030  	return
4031  }
4032  
4033  // no documentation yet
4034  func (r User_Customer_OpenIdConnect_TrustedProfile) InTerminalStatus() (resp bool, err error) {
4035  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "inTerminalStatus", nil, &r.Options, &resp)
4036  	return
4037  }
4038  
4039  // 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.
4040  //
4041  // 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.
4042  //
4043  // Due to security reasons, the number of reset requests per username are limited within a undisclosed timeframe.
4044  func (r User_Customer_OpenIdConnect_TrustedProfile) InitiatePortalPasswordChange(username *string) (resp bool, err error) {
4045  	params := []interface{}{
4046  		username,
4047  	}
4048  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "initiatePortalPasswordChange", params, &r.Options, &resp)
4049  	return
4050  }
4051  
4052  // 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.
4053  func (r User_Customer_OpenIdConnect_TrustedProfile) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) {
4054  	params := []interface{}{
4055  		username,
4056  	}
4057  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp)
4058  	return
4059  }
4060  
4061  // Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error.
4062  func (r User_Customer_OpenIdConnect_TrustedProfile) InviteUserToLinkOpenIdConnect(providerType *string) (err error) {
4063  	var resp datatypes.Void
4064  	params := []interface{}{
4065  		providerType,
4066  	}
4067  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp)
4068  	return
4069  }
4070  
4071  // 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.
4072  // Deprecated: This function has been marked as deprecated.
4073  func (r User_Customer_OpenIdConnect_TrustedProfile) IsMasterUser() (resp bool, err error) {
4074  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "isMasterUser", nil, &r.Options, &resp)
4075  	return
4076  }
4077  
4078  // Determine if a string is the given user's login password to the SoftLayer customer portal.
4079  func (r User_Customer_OpenIdConnect_TrustedProfile) IsValidPortalPassword(password *string) (resp bool, err error) {
4080  	params := []interface{}{
4081  		password,
4082  	}
4083  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "isValidPortalPassword", params, &r.Options, &resp)
4084  	return
4085  }
4086  
4087  // 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.
4088  func (r User_Customer_OpenIdConnect_TrustedProfile) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
4089  	params := []interface{}{
4090  		authenticationContainer,
4091  	}
4092  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "performExternalAuthentication", params, &r.Options, &resp)
4093  	return
4094  }
4095  
4096  // 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 request. Password recovery keys are valid for 24 hours after they're generated.
4097  //
4098  // If the user has required authentication methods as specified by in the SoftLayer_Container_User_Customer_PasswordSet container returned from the SoftLayer_User_Customer::getRequirementsForPasswordSet request, then additional requests must be made to processPasswordSetRequest to authenticate the user before changing the password.  First, if the user has security questions set on their profile, they will be required to answer one of their questions correctly. Next, if the user has Verisign or Google Authentication on their account, they must authenticate according to the two-factor provider.  All of this authentication is done using the SoftLayer_Container_User_Customer_PasswordSet container.
4099  //
4100  // User portal passwords must match the following restrictions. Portal passwords must...
4101  // * ...be over eight characters long.
4102  // * ...be under twenty characters long.
4103  // * ...contain at least one uppercase letter
4104  // * ...contain at least one lowercase letter
4105  // * ...contain at least one number
4106  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
4107  // * ...not match your username
4108  func (r User_Customer_OpenIdConnect_TrustedProfile) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
4109  	params := []interface{}{
4110  		passwordSet,
4111  		authenticationContainer,
4112  	}
4113  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "processPasswordSetRequest", params, &r.Options, &resp)
4114  	return
4115  }
4116  
4117  // 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.
4118  //
4119  // 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.
4120  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveAllDedicatedHostAccessForThisUser() (resp bool, err error) {
4121  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeAllDedicatedHostAccessForThisUser", nil, &r.Options, &resp)
4122  	return
4123  }
4124  
4125  // 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.
4126  //
4127  // 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.
4128  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveAllHardwareAccessForThisUser() (resp bool, err error) {
4129  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp)
4130  	return
4131  }
4132  
4133  // 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.
4134  //
4135  // 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.
4136  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveAllVirtualAccessForThisUser() (resp bool, err error) {
4137  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp)
4138  	return
4139  }
4140  
4141  // Remove a user's API authentication key, removing that user's access to query the SoftLayer API.
4142  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) {
4143  	params := []interface{}{
4144  		keyId,
4145  	}
4146  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeApiAuthenticationKey", params, &r.Options, &resp)
4147  	return
4148  }
4149  
4150  // 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.
4151  //
4152  // 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.
4153  //
4154  // If the user has full dedicatedHost access, then it will provide access to "ALL but passed in" dedicatedHost ids.
4155  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
4156  	params := []interface{}{
4157  		dedicatedHostIds,
4158  	}
4159  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeBulkDedicatedHostAccess", params, &r.Options, &resp)
4160  	return
4161  }
4162  
4163  // 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 to remove then removeBulkHardwareAccess() returns true.
4164  //
4165  // 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.
4166  //
4167  // If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids.
4168  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
4169  	params := []interface{}{
4170  		hardwareIds,
4171  	}
4172  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeBulkHardwareAccess", params, &r.Options, &resp)
4173  	return
4174  }
4175  
4176  // Remove (revoke) multiple permissions from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
4177  //
4178  // Users can grant or revoke permissions to their child users, but not to themselves. An account's master has all portal permissions and can grant permissions for any of the other users on their account.
4179  //
4180  // If the cascadePermissionsFlag is set to true, then removing the permissions from a user will cascade down the child hierarchy and remove the permissions from this user along with all child users who also have the permission.
4181  //
4182  // If the cascadePermissionsFlag is not provided or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
4183  //
4184  // 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.
4185  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
4186  	params := []interface{}{
4187  		permissions,
4188  		cascadePermissionsFlag,
4189  	}
4190  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeBulkPortalPermission", params, &r.Options, &resp)
4191  	return
4192  }
4193  
4194  // no documentation yet
4195  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
4196  	var resp datatypes.Void
4197  	params := []interface{}{
4198  		roles,
4199  	}
4200  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeBulkRoles", params, &r.Options, &resp)
4201  	return
4202  }
4203  
4204  // 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.
4205  //
4206  // 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.
4207  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
4208  	params := []interface{}{
4209  		virtualGuestIds,
4210  	}
4211  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeBulkVirtualGuestAccess", params, &r.Options, &resp)
4212  	return
4213  }
4214  
4215  // 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.
4216  //
4217  // 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.
4218  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
4219  	params := []interface{}{
4220  		dedicatedHostId,
4221  	}
4222  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeDedicatedHostAccess", params, &r.Options, &resp)
4223  	return
4224  }
4225  
4226  // no documentation yet
4227  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) {
4228  	params := []interface{}{
4229  		externalBinding,
4230  	}
4231  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeExternalBinding", params, &r.Options, &resp)
4232  	return
4233  }
4234  
4235  // 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.
4236  //
4237  // 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.
4238  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) {
4239  	params := []interface{}{
4240  		hardwareId,
4241  	}
4242  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeHardwareAccess", params, &r.Options, &resp)
4243  	return
4244  }
4245  
4246  // Remove (revoke) a permission from a portal user's permission set. [[SoftLayer_User_Customer_CustomerPermission_Permission]] 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.
4247  //
4248  // 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.
4249  //
4250  // If the cascadePermissionsFlag is set to true, then removing the permission from a user will cascade down the child hierarchy and remove the permission from this user and all child users who also have the permission.
4251  //
4252  // If the cascadePermissionsFlag is not set or is set to false and the user has children users who have the permission, then an exception will be thrown, and the permission will not be removed from this user.
4253  //
4254  // 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.
4255  func (r User_Customer_OpenIdConnect_TrustedProfile) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission, cascadePermissionsFlag *bool) (resp bool, err error) {
4256  	params := []interface{}{
4257  		permission,
4258  		cascadePermissionsFlag,
4259  	}
4260  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removePortalPermission", params, &r.Options, &resp)
4261  	return
4262  }
4263  
4264  // no documentation yet
4265  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveRole(role *datatypes.User_Permission_Role) (err error) {
4266  	var resp datatypes.Void
4267  	params := []interface{}{
4268  		role,
4269  	}
4270  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeRole", params, &r.Options, &resp)
4271  	return
4272  }
4273  
4274  // no documentation yet
4275  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveSecurityAnswers() (resp bool, err error) {
4276  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeSecurityAnswers", nil, &r.Options, &resp)
4277  	return
4278  }
4279  
4280  // 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.
4281  //
4282  // 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.
4283  func (r User_Customer_OpenIdConnect_TrustedProfile) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
4284  	params := []interface{}{
4285  		virtualGuestId,
4286  	}
4287  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "removeVirtualGuestAccess", params, &r.Options, &resp)
4288  	return
4289  }
4290  
4291  // This method will change the IBMid that a SoftLayer user is linked to, if we need to do that for some reason. It will do this by modifying the link to the desired new IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is already Bluemix linked. To reset a link for the Bluemix-linked user account, use resetOpenIdConnectLinkUnifiedUserManagementMode.
4292  func (r User_Customer_OpenIdConnect_TrustedProfile) ResetOpenIdConnectLink(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
4293  	var resp datatypes.Void
4294  	params := []interface{}{
4295  		providerType,
4296  		newIbmIdUsername,
4297  		removeSecuritySettings,
4298  	}
4299  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "resetOpenIdConnectLink", params, &r.Options, &resp)
4300  	return
4301  }
4302  
4303  // This method will change the IBMid that a SoftLayer master user is linked to, if we need to do that for some reason. It will do this by unlinking the new owner IBMid from its current user association in this account, if there is one (note that the new owner IBMid is not required to already be a member of the IMS account). Then it will modify the existing IBMid link for the master user to use the new owner IBMid-realm IAMid. At this point, if the new owner IBMid isn't already a member of the PaaS account, it will attempt to add it. As a last step, it will call PaaS to modify the owner on that side, if necessary.  Only when all those steps are complete, it will commit the IMS-side DB changes.  Then, it will clean up the SoftLayer user that was linked to the new owner IBMid (this user became unlinked as the first step in this process).  It will also call BSS to delete the old owner IBMid. NOTE:  This method cannot be used to "un-link" a SoftLayer user.  Once linked, a SoftLayer user can never be un-linked. Also, this method cannot be used to reset the link if the user account is not Bluemix linked. To reset a link for the user account not linked to Bluemix, use resetOpenIdConnectLink.
4304  func (r User_Customer_OpenIdConnect_TrustedProfile) ResetOpenIdConnectLinkUnifiedUserManagementMode(providerType *string, newIbmIdUsername *string, removeSecuritySettings *bool) (err error) {
4305  	var resp datatypes.Void
4306  	params := []interface{}{
4307  		providerType,
4308  		newIbmIdUsername,
4309  		removeSecuritySettings,
4310  	}
4311  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "resetOpenIdConnectLinkUnifiedUserManagementMode", params, &r.Options, &resp)
4312  	return
4313  }
4314  
4315  // no documentation yet
4316  func (r User_Customer_OpenIdConnect_TrustedProfile) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
4317  	params := []interface{}{
4318  		accountId,
4319  		samlResponse,
4320  	}
4321  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "samlAuthenticate", params, &r.Options, &resp)
4322  	return
4323  }
4324  
4325  // no documentation yet
4326  func (r User_Customer_OpenIdConnect_TrustedProfile) SamlBeginAuthentication(accountId *int) (resp string, err error) {
4327  	params := []interface{}{
4328  		accountId,
4329  	}
4330  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "samlBeginAuthentication", params, &r.Options, &resp)
4331  	return
4332  }
4333  
4334  // no documentation yet
4335  func (r User_Customer_OpenIdConnect_TrustedProfile) SamlBeginLogout() (resp string, err error) {
4336  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "samlBeginLogout", nil, &r.Options, &resp)
4337  	return
4338  }
4339  
4340  // no documentation yet
4341  func (r User_Customer_OpenIdConnect_TrustedProfile) SamlLogout(samlResponse *string) (err error) {
4342  	var resp datatypes.Void
4343  	params := []interface{}{
4344  		samlResponse,
4345  	}
4346  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "samlLogout", params, &r.Options, &resp)
4347  	return
4348  }
4349  
4350  // no documentation yet
4351  func (r User_Customer_OpenIdConnect_TrustedProfile) SelfPasswordChange(currentPassword *string, newPassword *string) (err error) {
4352  	var resp datatypes.Void
4353  	params := []interface{}{
4354  		currentPassword,
4355  		newPassword,
4356  	}
4357  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "selfPasswordChange", params, &r.Options, &resp)
4358  	return
4359  }
4360  
4361  // An OpenIdConnect identity, for example an IAMid, 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.
4362  func (r User_Customer_OpenIdConnect_TrustedProfile) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) {
4363  	params := []interface{}{
4364  		providerType,
4365  		accountId,
4366  	}
4367  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "setDefaultAccount", params, &r.Options, &resp)
4368  	return
4369  }
4370  
4371  // 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.
4372  func (r User_Customer_OpenIdConnect_TrustedProfile) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) {
4373  	params := []interface{}{
4374  		providerType,
4375  	}
4376  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp)
4377  	return
4378  }
4379  
4380  // This method allows the master user of an account to undo the designation of this user as an alternate master user.  This can not be applied to the true master user of the account.
4381  //
4382  // Note that this method, by itself, WILL NOT affect the IAM Policies granted this user.  This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner turns off an "alternate/auxiliary master user / account owner".
4383  func (r User_Customer_OpenIdConnect_TrustedProfile) TurnOffMasterUserPermissionCheckMode() (err error) {
4384  	var resp datatypes.Void
4385  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "turnOffMasterUserPermissionCheckMode", nil, &r.Options, &resp)
4386  	return
4387  }
4388  
4389  // This method allows the master user of an account to designate this user as an alternate master user.  Effectively this means that this user should have "all the same IMS permissions as a master user".
4390  //
4391  // Note that this method, by itself, WILL NOT affect the IAM Policies granted to this user. This API is not intended for general customer use.  It is intended to be called by IAM, in concert with other actions taken by IAM when the master user / account owner designates an "alternate/auxiliary master user / account owner".
4392  func (r User_Customer_OpenIdConnect_TrustedProfile) TurnOnMasterUserPermissionCheckMode() (err error) {
4393  	var resp datatypes.Void
4394  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "turnOnMasterUserPermissionCheckMode", nil, &r.Options, &resp)
4395  	return
4396  }
4397  
4398  // 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.
4399  func (r User_Customer_OpenIdConnect_TrustedProfile) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) {
4400  	params := []interface{}{
4401  		notificationKeyName,
4402  		active,
4403  	}
4404  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "updateNotificationSubscriber", params, &r.Options, &resp)
4405  	return
4406  }
4407  
4408  // 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.
4409  func (r User_Customer_OpenIdConnect_TrustedProfile) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) {
4410  	params := []interface{}{
4411  		questions,
4412  		answers,
4413  	}
4414  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "updateSecurityAnswers", params, &r.Options, &resp)
4415  	return
4416  }
4417  
4418  // 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'.
4419  func (r User_Customer_OpenIdConnect_TrustedProfile) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) {
4420  	params := []interface{}{
4421  		notificationKeyName,
4422  		deliveryMethodKeyNames,
4423  		active,
4424  	}
4425  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "updateSubscriberDeliveryMethod", params, &r.Options, &resp)
4426  	return
4427  }
4428  
4429  // 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...
4430  // * ...be over eight characters long.
4431  // * ...be under twenty characters long.
4432  // * ...contain at least one uppercase letter
4433  // * ...contain at least one lowercase letter
4434  // * ...contain at least one number
4435  // * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ =
4436  // * ...not match your username
4437  // Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords.
4438  func (r User_Customer_OpenIdConnect_TrustedProfile) UpdateVpnPassword(password *string) (resp bool, err error) {
4439  	params := []interface{}{
4440  		password,
4441  	}
4442  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "updateVpnPassword", params, &r.Options, &resp)
4443  	return
4444  }
4445  
4446  // Always call this function to enable changes when manually configuring VPN subnet access.
4447  func (r User_Customer_OpenIdConnect_TrustedProfile) UpdateVpnUser() (resp bool, err error) {
4448  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "updateVpnUser", nil, &r.Options, &resp)
4449  	return
4450  }
4451  
4452  // This method validate the given authentication token using the user id by comparing it with the actual user authentication token and return [[SoftLayer_Container_User_Customer_Portal_Token]] object
4453  func (r User_Customer_OpenIdConnect_TrustedProfile) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
4454  	params := []interface{}{
4455  		authenticationToken,
4456  	}
4457  	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect_TrustedProfile", "validateAuthenticationToken", params, &r.Options, &resp)
4458  	return
4459  }
4460  
4461  // no documentation yet
4462  type User_Customer_Profile_Event_HyperWarp struct {
4463  	Session session.SLSession
4464  	Options sl.Options
4465  }
4466  
4467  // GetUserCustomerProfileEventHyperWarpService returns an instance of the User_Customer_Profile_Event_HyperWarp SoftLayer service
4468  func GetUserCustomerProfileEventHyperWarpService(sess session.SLSession) User_Customer_Profile_Event_HyperWarp {
4469  	return User_Customer_Profile_Event_HyperWarp{Session: sess}
4470  }
4471  
4472  func (r User_Customer_Profile_Event_HyperWarp) Id(id int) User_Customer_Profile_Event_HyperWarp {
4473  	r.Options.Id = &id
4474  	return r
4475  }
4476  
4477  func (r User_Customer_Profile_Event_HyperWarp) Mask(mask string) User_Customer_Profile_Event_HyperWarp {
4478  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4479  		mask = fmt.Sprintf("mask[%s]", mask)
4480  	}
4481  
4482  	r.Options.Mask = mask
4483  	return r
4484  }
4485  
4486  func (r User_Customer_Profile_Event_HyperWarp) Filter(filter string) User_Customer_Profile_Event_HyperWarp {
4487  	r.Options.Filter = filter
4488  	return r
4489  }
4490  
4491  func (r User_Customer_Profile_Event_HyperWarp) Limit(limit int) User_Customer_Profile_Event_HyperWarp {
4492  	r.Options.Limit = &limit
4493  	return r
4494  }
4495  
4496  func (r User_Customer_Profile_Event_HyperWarp) Offset(offset int) User_Customer_Profile_Event_HyperWarp {
4497  	r.Options.Offset = &offset
4498  	return r
4499  }
4500  
4501  // no documentation yet
4502  func (r User_Customer_Profile_Event_HyperWarp) ReceiveEventDirect(eventJson *datatypes.Container_User_Customer_Profile_Event_HyperWarp_ProfileChange) (resp bool, err error) {
4503  	params := []interface{}{
4504  		eventJson,
4505  	}
4506  	err = r.Session.DoRequest("SoftLayer_User_Customer_Profile_Event_HyperWarp", "receiveEventDirect", params, &r.Options, &resp)
4507  	return
4508  }
4509  
4510  // Contains user information for Service Provider Enrollment.
4511  type User_Customer_Prospect_ServiceProvider_EnrollRequest struct {
4512  	Session session.SLSession
4513  	Options sl.Options
4514  }
4515  
4516  // GetUserCustomerProspectServiceProviderEnrollRequestService returns an instance of the User_Customer_Prospect_ServiceProvider_EnrollRequest SoftLayer service
4517  func GetUserCustomerProspectServiceProviderEnrollRequestService(sess session.SLSession) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4518  	return User_Customer_Prospect_ServiceProvider_EnrollRequest{Session: sess}
4519  }
4520  
4521  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Id(id int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4522  	r.Options.Id = &id
4523  	return r
4524  }
4525  
4526  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Mask(mask string) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4527  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4528  		mask = fmt.Sprintf("mask[%s]", mask)
4529  	}
4530  
4531  	r.Options.Mask = mask
4532  	return r
4533  }
4534  
4535  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Filter(filter string) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4536  	r.Options.Filter = filter
4537  	return r
4538  }
4539  
4540  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Limit(limit int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4541  	r.Options.Limit = &limit
4542  	return r
4543  }
4544  
4545  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Offset(offset int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
4546  	r.Options.Offset = &offset
4547  	return r
4548  }
4549  
4550  // Create a new Service Provider Enrollment
4551  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Enroll(templateObject *datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest) (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) {
4552  	params := []interface{}{
4553  		templateObject,
4554  	}
4555  	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "enroll", params, &r.Options, &resp)
4556  	return
4557  }
4558  
4559  // Retrieve Catalyst company types.
4560  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetCompanyType() (resp datatypes.Catalyst_Company_Type, err error) {
4561  	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getCompanyType", nil, &r.Options, &resp)
4562  	return
4563  }
4564  
4565  // no documentation yet
4566  func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetObject() (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) {
4567  	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getObject", nil, &r.Options, &resp)
4568  	return
4569  }
4570  
4571  // The SoftLayer_User_Customer_Security_Answer type contains user's answers to security questions.
4572  type User_Customer_Security_Answer struct {
4573  	Session session.SLSession
4574  	Options sl.Options
4575  }
4576  
4577  // GetUserCustomerSecurityAnswerService returns an instance of the User_Customer_Security_Answer SoftLayer service
4578  func GetUserCustomerSecurityAnswerService(sess session.SLSession) User_Customer_Security_Answer {
4579  	return User_Customer_Security_Answer{Session: sess}
4580  }
4581  
4582  func (r User_Customer_Security_Answer) Id(id int) User_Customer_Security_Answer {
4583  	r.Options.Id = &id
4584  	return r
4585  }
4586  
4587  func (r User_Customer_Security_Answer) Mask(mask string) User_Customer_Security_Answer {
4588  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4589  		mask = fmt.Sprintf("mask[%s]", mask)
4590  	}
4591  
4592  	r.Options.Mask = mask
4593  	return r
4594  }
4595  
4596  func (r User_Customer_Security_Answer) Filter(filter string) User_Customer_Security_Answer {
4597  	r.Options.Filter = filter
4598  	return r
4599  }
4600  
4601  func (r User_Customer_Security_Answer) Limit(limit int) User_Customer_Security_Answer {
4602  	r.Options.Limit = &limit
4603  	return r
4604  }
4605  
4606  func (r User_Customer_Security_Answer) Offset(offset int) User_Customer_Security_Answer {
4607  	r.Options.Offset = &offset
4608  	return r
4609  }
4610  
4611  // 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.
4612  func (r User_Customer_Security_Answer) GetObject() (resp datatypes.User_Customer_Security_Answer, err error) {
4613  	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getObject", nil, &r.Options, &resp)
4614  	return
4615  }
4616  
4617  // Retrieve The question the security answer is associated with.
4618  func (r User_Customer_Security_Answer) GetQuestion() (resp datatypes.User_Security_Question, err error) {
4619  	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getQuestion", nil, &r.Options, &resp)
4620  	return
4621  }
4622  
4623  // Retrieve The user who the security answer belongs to.
4624  func (r User_Customer_Security_Answer) GetUser() (resp datatypes.User_Customer, err error) {
4625  	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getUser", nil, &r.Options, &resp)
4626  	return
4627  }
4628  
4629  // Each SoftLayer User Customer instance 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.
4630  //
4631  // Note that a status of "PENDING" also has been added. This status is specific to users that are configured to use IBMid authentication. This would include some (not all) users on accounts that are linked to Platform Services (PaaS, formerly Bluemix) accounts, but is not limited to users in such accounts. Using IBMid authentication is optional for active users even if it is not required by the account type. PENDING status indicates that a relationship between an IBMid and a user is being set up but is not complete. To be complete, PENDING users need to perform an action ("accepting the invitation") before becoming an active user within IBM Cloud and/or IMS. PENDING is a system state, and can not be administered by users (including the account master user). SoftLayer Commercial is the only environment where IBMid and/or account linking are used.
4632  type User_Customer_Status struct {
4633  	Session session.SLSession
4634  	Options sl.Options
4635  }
4636  
4637  // GetUserCustomerStatusService returns an instance of the User_Customer_Status SoftLayer service
4638  func GetUserCustomerStatusService(sess session.SLSession) User_Customer_Status {
4639  	return User_Customer_Status{Session: sess}
4640  }
4641  
4642  func (r User_Customer_Status) Id(id int) User_Customer_Status {
4643  	r.Options.Id = &id
4644  	return r
4645  }
4646  
4647  func (r User_Customer_Status) Mask(mask string) User_Customer_Status {
4648  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4649  		mask = fmt.Sprintf("mask[%s]", mask)
4650  	}
4651  
4652  	r.Options.Mask = mask
4653  	return r
4654  }
4655  
4656  func (r User_Customer_Status) Filter(filter string) User_Customer_Status {
4657  	r.Options.Filter = filter
4658  	return r
4659  }
4660  
4661  func (r User_Customer_Status) Limit(limit int) User_Customer_Status {
4662  	r.Options.Limit = &limit
4663  	return r
4664  }
4665  
4666  func (r User_Customer_Status) Offset(offset int) User_Customer_Status {
4667  	r.Options.Offset = &offset
4668  	return r
4669  }
4670  
4671  // Retrieve all user status objects.
4672  func (r User_Customer_Status) GetAllObjects() (resp []datatypes.User_Customer_Status, err error) {
4673  	err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getAllObjects", nil, &r.Options, &resp)
4674  	return
4675  }
4676  
4677  // 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.
4678  func (r User_Customer_Status) GetObject() (resp datatypes.User_Customer_Status, err error) {
4679  	err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getObject", nil, &r.Options, &resp)
4680  	return
4681  }
4682  
4683  // 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.
4684  type User_External_Binding struct {
4685  	Session session.SLSession
4686  	Options sl.Options
4687  }
4688  
4689  // GetUserExternalBindingService returns an instance of the User_External_Binding SoftLayer service
4690  func GetUserExternalBindingService(sess session.SLSession) User_External_Binding {
4691  	return User_External_Binding{Session: sess}
4692  }
4693  
4694  func (r User_External_Binding) Id(id int) User_External_Binding {
4695  	r.Options.Id = &id
4696  	return r
4697  }
4698  
4699  func (r User_External_Binding) Mask(mask string) User_External_Binding {
4700  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4701  		mask = fmt.Sprintf("mask[%s]", mask)
4702  	}
4703  
4704  	r.Options.Mask = mask
4705  	return r
4706  }
4707  
4708  func (r User_External_Binding) Filter(filter string) User_External_Binding {
4709  	r.Options.Filter = filter
4710  	return r
4711  }
4712  
4713  func (r User_External_Binding) Limit(limit int) User_External_Binding {
4714  	r.Options.Limit = &limit
4715  	return r
4716  }
4717  
4718  func (r User_External_Binding) Offset(offset int) User_External_Binding {
4719  	r.Options.Offset = &offset
4720  	return r
4721  }
4722  
4723  // 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.
4724  func (r User_External_Binding) DeleteObject() (resp bool, err error) {
4725  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "deleteObject", nil, &r.Options, &resp)
4726  	return
4727  }
4728  
4729  // Retrieve Attributes of an external authentication binding.
4730  func (r User_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
4731  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getAttributes", nil, &r.Options, &resp)
4732  	return
4733  }
4734  
4735  // Retrieve Information regarding the billing item for external authentication.
4736  func (r User_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) {
4737  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getBillingItem", nil, &r.Options, &resp)
4738  	return
4739  }
4740  
4741  // Retrieve An optional note for identifying the external binding.
4742  func (r User_External_Binding) GetNote() (resp string, err error) {
4743  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getNote", nil, &r.Options, &resp)
4744  	return
4745  }
4746  
4747  // no documentation yet
4748  func (r User_External_Binding) GetObject() (resp datatypes.User_External_Binding, err error) {
4749  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getObject", nil, &r.Options, &resp)
4750  	return
4751  }
4752  
4753  // Retrieve The type of external authentication binding.
4754  func (r User_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) {
4755  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getType", nil, &r.Options, &resp)
4756  	return
4757  }
4758  
4759  // Retrieve The vendor of an external authentication binding.
4760  func (r User_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
4761  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getVendor", nil, &r.Options, &resp)
4762  	return
4763  }
4764  
4765  // Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
4766  func (r User_External_Binding) UpdateNote(text *string) (resp bool, err error) {
4767  	params := []interface{}{
4768  		text,
4769  	}
4770  	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "updateNote", params, &r.Options, &resp)
4771  	return
4772  }
4773  
4774  // 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.
4775  type User_External_Binding_Vendor struct {
4776  	Session session.SLSession
4777  	Options sl.Options
4778  }
4779  
4780  // GetUserExternalBindingVendorService returns an instance of the User_External_Binding_Vendor SoftLayer service
4781  func GetUserExternalBindingVendorService(sess session.SLSession) User_External_Binding_Vendor {
4782  	return User_External_Binding_Vendor{Session: sess}
4783  }
4784  
4785  func (r User_External_Binding_Vendor) Id(id int) User_External_Binding_Vendor {
4786  	r.Options.Id = &id
4787  	return r
4788  }
4789  
4790  func (r User_External_Binding_Vendor) Mask(mask string) User_External_Binding_Vendor {
4791  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4792  		mask = fmt.Sprintf("mask[%s]", mask)
4793  	}
4794  
4795  	r.Options.Mask = mask
4796  	return r
4797  }
4798  
4799  func (r User_External_Binding_Vendor) Filter(filter string) User_External_Binding_Vendor {
4800  	r.Options.Filter = filter
4801  	return r
4802  }
4803  
4804  func (r User_External_Binding_Vendor) Limit(limit int) User_External_Binding_Vendor {
4805  	r.Options.Limit = &limit
4806  	return r
4807  }
4808  
4809  func (r User_External_Binding_Vendor) Offset(offset int) User_External_Binding_Vendor {
4810  	r.Options.Offset = &offset
4811  	return r
4812  }
4813  
4814  // 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.
4815  func (r User_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) {
4816  	err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp)
4817  	return
4818  }
4819  
4820  // no documentation yet
4821  func (r User_External_Binding_Vendor) GetObject() (resp datatypes.User_External_Binding_Vendor, err error) {
4822  	err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getObject", nil, &r.Options, &resp)
4823  	return
4824  }
4825  
4826  // The SoftLayer_User_Permission_Action data type contains local attributes to identify and describe the valid actions a customer user can perform within IMS.  This includes a name, key name, and description.  This data can not be modified by users of IMS.
4827  //
4828  // It also contains relational attributes that indicate which SoftLayer_User_Permission_Group's include the action.
4829  type User_Permission_Action struct {
4830  	Session session.SLSession
4831  	Options sl.Options
4832  }
4833  
4834  // GetUserPermissionActionService returns an instance of the User_Permission_Action SoftLayer service
4835  func GetUserPermissionActionService(sess session.SLSession) User_Permission_Action {
4836  	return User_Permission_Action{Session: sess}
4837  }
4838  
4839  func (r User_Permission_Action) Id(id int) User_Permission_Action {
4840  	r.Options.Id = &id
4841  	return r
4842  }
4843  
4844  func (r User_Permission_Action) Mask(mask string) User_Permission_Action {
4845  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4846  		mask = fmt.Sprintf("mask[%s]", mask)
4847  	}
4848  
4849  	r.Options.Mask = mask
4850  	return r
4851  }
4852  
4853  func (r User_Permission_Action) Filter(filter string) User_Permission_Action {
4854  	r.Options.Filter = filter
4855  	return r
4856  }
4857  
4858  func (r User_Permission_Action) Limit(limit int) User_Permission_Action {
4859  	r.Options.Limit = &limit
4860  	return r
4861  }
4862  
4863  func (r User_Permission_Action) Offset(offset int) User_Permission_Action {
4864  	r.Options.Offset = &offset
4865  	return r
4866  }
4867  
4868  // Object filters and result limits are enabled on this method.
4869  func (r User_Permission_Action) GetAllObjects() (resp []datatypes.User_Permission_Action, err error) {
4870  	err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getAllObjects", nil, &r.Options, &resp)
4871  	return
4872  }
4873  
4874  // Retrieve
4875  func (r User_Permission_Action) GetDepartment() (resp datatypes.User_Permission_Department, err error) {
4876  	err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getDepartment", nil, &r.Options, &resp)
4877  	return
4878  }
4879  
4880  // no documentation yet
4881  func (r User_Permission_Action) GetObject() (resp datatypes.User_Permission_Action, err error) {
4882  	err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getObject", nil, &r.Options, &resp)
4883  	return
4884  }
4885  
4886  // no documentation yet
4887  type User_Permission_Department struct {
4888  	Session session.SLSession
4889  	Options sl.Options
4890  }
4891  
4892  // GetUserPermissionDepartmentService returns an instance of the User_Permission_Department SoftLayer service
4893  func GetUserPermissionDepartmentService(sess session.SLSession) User_Permission_Department {
4894  	return User_Permission_Department{Session: sess}
4895  }
4896  
4897  func (r User_Permission_Department) Id(id int) User_Permission_Department {
4898  	r.Options.Id = &id
4899  	return r
4900  }
4901  
4902  func (r User_Permission_Department) Mask(mask string) User_Permission_Department {
4903  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4904  		mask = fmt.Sprintf("mask[%s]", mask)
4905  	}
4906  
4907  	r.Options.Mask = mask
4908  	return r
4909  }
4910  
4911  func (r User_Permission_Department) Filter(filter string) User_Permission_Department {
4912  	r.Options.Filter = filter
4913  	return r
4914  }
4915  
4916  func (r User_Permission_Department) Limit(limit int) User_Permission_Department {
4917  	r.Options.Limit = &limit
4918  	return r
4919  }
4920  
4921  func (r User_Permission_Department) Offset(offset int) User_Permission_Department {
4922  	r.Options.Offset = &offset
4923  	return r
4924  }
4925  
4926  // no documentation yet
4927  func (r User_Permission_Department) GetAllObjects() (resp []datatypes.User_Permission_Department, err error) {
4928  	err = r.Session.DoRequest("SoftLayer_User_Permission_Department", "getAllObjects", nil, &r.Options, &resp)
4929  	return
4930  }
4931  
4932  // no documentation yet
4933  func (r User_Permission_Department) GetObject() (resp datatypes.User_Permission_Department, err error) {
4934  	err = r.Session.DoRequest("SoftLayer_User_Permission_Department", "getObject", nil, &r.Options, &resp)
4935  	return
4936  }
4937  
4938  // Retrieve
4939  func (r User_Permission_Department) GetPermissions() (resp []datatypes.User_Permission_Action, err error) {
4940  	err = r.Session.DoRequest("SoftLayer_User_Permission_Department", "getPermissions", nil, &r.Options, &resp)
4941  	return
4942  }
4943  
4944  // The SoftLayer_User_Permission_Group data type contains local attributes to identify and describe the permission groups that have been created within IMS.  These includes a name, description, and account id.  Permission groups are defined specifically for a single [[SoftLayer_Account]].
4945  //
4946  // It also contains relational attributes that indicate what SoftLayer_User_Permission_Action objects belong to a particular group, and what SoftLayer_User_Permission_Role objects the group is linked.
4947  type User_Permission_Group struct {
4948  	Session session.SLSession
4949  	Options sl.Options
4950  }
4951  
4952  // GetUserPermissionGroupService returns an instance of the User_Permission_Group SoftLayer service
4953  func GetUserPermissionGroupService(sess session.SLSession) User_Permission_Group {
4954  	return User_Permission_Group{Session: sess}
4955  }
4956  
4957  func (r User_Permission_Group) Id(id int) User_Permission_Group {
4958  	r.Options.Id = &id
4959  	return r
4960  }
4961  
4962  func (r User_Permission_Group) Mask(mask string) User_Permission_Group {
4963  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4964  		mask = fmt.Sprintf("mask[%s]", mask)
4965  	}
4966  
4967  	r.Options.Mask = mask
4968  	return r
4969  }
4970  
4971  func (r User_Permission_Group) Filter(filter string) User_Permission_Group {
4972  	r.Options.Filter = filter
4973  	return r
4974  }
4975  
4976  func (r User_Permission_Group) Limit(limit int) User_Permission_Group {
4977  	r.Options.Limit = &limit
4978  	return r
4979  }
4980  
4981  func (r User_Permission_Group) Offset(offset int) User_Permission_Group {
4982  	r.Options.Offset = &offset
4983  	return r
4984  }
4985  
4986  // Assigns a SoftLayer_User_Permission_Action object to the group.
4987  func (r User_Permission_Group) AddAction(action *datatypes.User_Permission_Action) (err error) {
4988  	var resp datatypes.Void
4989  	params := []interface{}{
4990  		action,
4991  	}
4992  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addAction", params, &r.Options, &resp)
4993  	return
4994  }
4995  
4996  // Assigns multiple SoftLayer_User_Permission_Action objects to the group.
4997  func (r User_Permission_Group) AddBulkActions(actions []datatypes.User_Permission_Action) (err error) {
4998  	var resp datatypes.Void
4999  	params := []interface{}{
5000  		actions,
5001  	}
5002  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkActions", params, &r.Options, &resp)
5003  	return
5004  }
5005  
5006  // Links multiple SoftLayer_Hardware_Server, SoftLayer_Virtual_Guest, or SoftLayer_Virtual_DedicatedHost objects to the group. All objects must be of the same type.
5007  func (r User_Permission_Group) AddBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
5008  	params := []interface{}{
5009  		resourceObjects,
5010  		resourceTypeKeyName,
5011  	}
5012  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkResourceObjects", params, &r.Options, &resp)
5013  	return
5014  }
5015  
5016  // Links a SoftLayer_Hardware_Server, SoftLayer_Virtual_Guest, or SoftLayer_Virtual_DedicatedHost object to the group.
5017  func (r User_Permission_Group) AddResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
5018  	params := []interface{}{
5019  		resourceObject,
5020  		resourceTypeKeyName,
5021  	}
5022  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addResourceObject", params, &r.Options, &resp)
5023  	return
5024  }
5025  
5026  // Customer created permission groups must be of type NORMAL.  The SYSTEM type is reserved for internal use. The account id supplied in the template permission group must match account id of the user who is creating the permission group.  The user who is creating the permission group must have the permission to manage users.
5027  func (r User_Permission_Group) CreateObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) {
5028  	params := []interface{}{
5029  		templateObject,
5030  	}
5031  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "createObject", params, &r.Options, &resp)
5032  	return
5033  }
5034  
5035  // Customer users can only delete permission groups of type NORMAL.  The SYSTEM type is reserved for internal use. The user who is creating the permission group must have the permission to manage users.
5036  func (r User_Permission_Group) DeleteObject() (resp bool, err error) {
5037  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "deleteObject", nil, &r.Options, &resp)
5038  	return
5039  }
5040  
5041  // Allows a user to modify the name and description of an existing customer permission group. Customer permission groups must be of type NORMAL.  The SYSTEM type is reserved for internal use. The account id supplied in the template permission group must match account id of the user who is creating the permission group.  The user who is creating the permission group must have the permission to manage users.
5042  func (r User_Permission_Group) EditObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) {
5043  	params := []interface{}{
5044  		templateObject,
5045  	}
5046  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "editObject", params, &r.Options, &resp)
5047  	return
5048  }
5049  
5050  // Retrieve
5051  func (r User_Permission_Group) GetAccount() (resp datatypes.Account, err error) {
5052  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getAccount", nil, &r.Options, &resp)
5053  	return
5054  }
5055  
5056  // Retrieve
5057  func (r User_Permission_Group) GetActions() (resp []datatypes.User_Permission_Action, err error) {
5058  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getActions", nil, &r.Options, &resp)
5059  	return
5060  }
5061  
5062  // no documentation yet
5063  func (r User_Permission_Group) GetObject() (resp datatypes.User_Permission_Group, err error) {
5064  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getObject", nil, &r.Options, &resp)
5065  	return
5066  }
5067  
5068  // Retrieve
5069  func (r User_Permission_Group) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
5070  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getRoles", nil, &r.Options, &resp)
5071  	return
5072  }
5073  
5074  // Retrieve The type of the permission group.
5075  func (r User_Permission_Group) GetType() (resp datatypes.User_Permission_Group_Type, err error) {
5076  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getType", nil, &r.Options, &resp)
5077  	return
5078  }
5079  
5080  // Links a SoftLayer_User_Permission_Role object to the group.
5081  func (r User_Permission_Group) LinkRole(role *datatypes.User_Permission_Role) (err error) {
5082  	var resp datatypes.Void
5083  	params := []interface{}{
5084  		role,
5085  	}
5086  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "linkRole", params, &r.Options, &resp)
5087  	return
5088  }
5089  
5090  // Unassigns a SoftLayer_User_Permission_Action object from the group.
5091  func (r User_Permission_Group) RemoveAction(action *datatypes.User_Permission_Action) (err error) {
5092  	var resp datatypes.Void
5093  	params := []interface{}{
5094  		action,
5095  	}
5096  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeAction", params, &r.Options, &resp)
5097  	return
5098  }
5099  
5100  // Unassigns multiple SoftLayer_User_Permission_Action objects from the group.
5101  func (r User_Permission_Group) RemoveBulkActions(actions []datatypes.User_Permission_Action) (err error) {
5102  	var resp datatypes.Void
5103  	params := []interface{}{
5104  		actions,
5105  	}
5106  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkActions", params, &r.Options, &resp)
5107  	return
5108  }
5109  
5110  // Unlinks multiple SoftLayer_Hardware_Server, SoftLayer_Virtual_Guest, or SoftLayer_Virtual_DedicatedHost objects from the group. All objects must be of the same type.
5111  func (r User_Permission_Group) RemoveBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
5112  	params := []interface{}{
5113  		resourceObjects,
5114  		resourceTypeKeyName,
5115  	}
5116  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkResourceObjects", params, &r.Options, &resp)
5117  	return
5118  }
5119  
5120  // Unlinks a SoftLayer_Hardware_Server, SoftLayer_Virtual_Guest, or SoftLayer_Virtual_DedicatedHost object from the group.
5121  func (r User_Permission_Group) RemoveResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
5122  	params := []interface{}{
5123  		resourceObject,
5124  		resourceTypeKeyName,
5125  	}
5126  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeResourceObject", params, &r.Options, &resp)
5127  	return
5128  }
5129  
5130  // Removes a link from SoftLayer_User_Permission_Role object to the group.
5131  func (r User_Permission_Group) UnlinkRole(role *datatypes.User_Permission_Role) (err error) {
5132  	var resp datatypes.Void
5133  	params := []interface{}{
5134  		role,
5135  	}
5136  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "unlinkRole", params, &r.Options, &resp)
5137  	return
5138  }
5139  
5140  // These are the attributes which describe a SoftLayer_User_Permission_Group_Type. All SoftLayer_User_Permission_Group objects must be linked to one of these types.
5141  //
5142  // For further information see: [[SoftLayer_User_Permission_Group]].
5143  type User_Permission_Group_Type struct {
5144  	Session session.SLSession
5145  	Options sl.Options
5146  }
5147  
5148  // GetUserPermissionGroupTypeService returns an instance of the User_Permission_Group_Type SoftLayer service
5149  func GetUserPermissionGroupTypeService(sess session.SLSession) User_Permission_Group_Type {
5150  	return User_Permission_Group_Type{Session: sess}
5151  }
5152  
5153  func (r User_Permission_Group_Type) Id(id int) User_Permission_Group_Type {
5154  	r.Options.Id = &id
5155  	return r
5156  }
5157  
5158  func (r User_Permission_Group_Type) Mask(mask string) User_Permission_Group_Type {
5159  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
5160  		mask = fmt.Sprintf("mask[%s]", mask)
5161  	}
5162  
5163  	r.Options.Mask = mask
5164  	return r
5165  }
5166  
5167  func (r User_Permission_Group_Type) Filter(filter string) User_Permission_Group_Type {
5168  	r.Options.Filter = filter
5169  	return r
5170  }
5171  
5172  func (r User_Permission_Group_Type) Limit(limit int) User_Permission_Group_Type {
5173  	r.Options.Limit = &limit
5174  	return r
5175  }
5176  
5177  func (r User_Permission_Group_Type) Offset(offset int) User_Permission_Group_Type {
5178  	r.Options.Offset = &offset
5179  	return r
5180  }
5181  
5182  // Retrieve The groups that are of this type.
5183  func (r User_Permission_Group_Type) GetGroups() (resp []datatypes.User_Permission_Group, err error) {
5184  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getGroups", nil, &r.Options, &resp)
5185  	return
5186  }
5187  
5188  // no documentation yet
5189  func (r User_Permission_Group_Type) GetObject() (resp datatypes.User_Permission_Group_Type, err error) {
5190  	err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getObject", nil, &r.Options, &resp)
5191  	return
5192  }
5193  
5194  // These are the variables relating to SoftLayer_User_Permission_Resource_Type. Collectively they describe the types of resources which can be linked to [[SoftLayer_User_Permission_Group]].
5195  type User_Permission_Resource_Type struct {
5196  	Session session.SLSession
5197  	Options sl.Options
5198  }
5199  
5200  // GetUserPermissionResourceTypeService returns an instance of the User_Permission_Resource_Type SoftLayer service
5201  func GetUserPermissionResourceTypeService(sess session.SLSession) User_Permission_Resource_Type {
5202  	return User_Permission_Resource_Type{Session: sess}
5203  }
5204  
5205  func (r User_Permission_Resource_Type) Id(id int) User_Permission_Resource_Type {
5206  	r.Options.Id = &id
5207  	return r
5208  }
5209  
5210  func (r User_Permission_Resource_Type) Mask(mask string) User_Permission_Resource_Type {
5211  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
5212  		mask = fmt.Sprintf("mask[%s]", mask)
5213  	}
5214  
5215  	r.Options.Mask = mask
5216  	return r
5217  }
5218  
5219  func (r User_Permission_Resource_Type) Filter(filter string) User_Permission_Resource_Type {
5220  	r.Options.Filter = filter
5221  	return r
5222  }
5223  
5224  func (r User_Permission_Resource_Type) Limit(limit int) User_Permission_Resource_Type {
5225  	r.Options.Limit = &limit
5226  	return r
5227  }
5228  
5229  func (r User_Permission_Resource_Type) Offset(offset int) User_Permission_Resource_Type {
5230  	r.Options.Offset = &offset
5231  	return r
5232  }
5233  
5234  // Retrieve an array of SoftLayer_User_Permission_Resource_Type objects.
5235  func (r User_Permission_Resource_Type) GetAllObjects() (resp []datatypes.User_Permission_Resource_Type, err error) {
5236  	err = r.Session.DoRequest("SoftLayer_User_Permission_Resource_Type", "getAllObjects", nil, &r.Options, &resp)
5237  	return
5238  }
5239  
5240  // no documentation yet
5241  func (r User_Permission_Resource_Type) GetObject() (resp datatypes.User_Permission_Resource_Type, err error) {
5242  	err = r.Session.DoRequest("SoftLayer_User_Permission_Resource_Type", "getObject", nil, &r.Options, &resp)
5243  	return
5244  }
5245  
5246  // The SoftLayer_User_Permission_Role data type contains local attributes to identify and describe the permission roles that have been created within IMS.  These includes a name, description, and account id.  Permission groups are defined specifically for a single [[SoftLayer_Account]].
5247  //
5248  // It also contains relational attributes that indicate what SoftLayer_User_Permission_Group objects are linked to a particular role, and the SoftLayer_User_Customer objects assigned to the role.
5249  type User_Permission_Role struct {
5250  	Session session.SLSession
5251  	Options sl.Options
5252  }
5253  
5254  // GetUserPermissionRoleService returns an instance of the User_Permission_Role SoftLayer service
5255  func GetUserPermissionRoleService(sess session.SLSession) User_Permission_Role {
5256  	return User_Permission_Role{Session: sess}
5257  }
5258  
5259  func (r User_Permission_Role) Id(id int) User_Permission_Role {
5260  	r.Options.Id = &id
5261  	return r
5262  }
5263  
5264  func (r User_Permission_Role) Mask(mask string) User_Permission_Role {
5265  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
5266  		mask = fmt.Sprintf("mask[%s]", mask)
5267  	}
5268  
5269  	r.Options.Mask = mask
5270  	return r
5271  }
5272  
5273  func (r User_Permission_Role) Filter(filter string) User_Permission_Role {
5274  	r.Options.Filter = filter
5275  	return r
5276  }
5277  
5278  func (r User_Permission_Role) Limit(limit int) User_Permission_Role {
5279  	r.Options.Limit = &limit
5280  	return r
5281  }
5282  
5283  func (r User_Permission_Role) Offset(offset int) User_Permission_Role {
5284  	r.Options.Offset = &offset
5285  	return r
5286  }
5287  
5288  // Assigns a SoftLayer_User_Customer object to the role.
5289  func (r User_Permission_Role) AddUser(user *datatypes.User_Customer) (err error) {
5290  	var resp datatypes.Void
5291  	params := []interface{}{
5292  		user,
5293  	}
5294  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "addUser", params, &r.Options, &resp)
5295  	return
5296  }
5297  
5298  // Customer created permission roles must set the systemFlag attribute to false.  The SYSTEM type is reserved for internal use. The account id supplied in the template permission group must match account id of the user who is creating the permission group.  The user who is creating the permission group must have the permission to manage users.
5299  func (r User_Permission_Role) CreateObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) {
5300  	params := []interface{}{
5301  		templateObject,
5302  	}
5303  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "createObject", params, &r.Options, &resp)
5304  	return
5305  }
5306  
5307  // Customer users can only delete permission roles with systemFlag set to false.  The SYSTEM type is reserved for internal use. The user who is creating the permission role must have the permission to manage users.
5308  func (r User_Permission_Role) DeleteObject() (resp bool, err error) {
5309  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "deleteObject", nil, &r.Options, &resp)
5310  	return
5311  }
5312  
5313  // Allows a user to modify the name and description of an existing customer permission role. Customer permission roles must set the systemFlag attribute to false.  The SYSTEM type is reserved for internal use. The account id supplied in the template permission role must match account id of the user who is creating the permission role.  The user who is creating the permission role must have the permission to manage users.
5314  func (r User_Permission_Role) EditObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) {
5315  	params := []interface{}{
5316  		templateObject,
5317  	}
5318  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "editObject", params, &r.Options, &resp)
5319  	return
5320  }
5321  
5322  // Retrieve
5323  func (r User_Permission_Role) GetAccount() (resp datatypes.Account, err error) {
5324  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getAccount", nil, &r.Options, &resp)
5325  	return
5326  }
5327  
5328  // Retrieve
5329  func (r User_Permission_Role) GetActions() (resp []datatypes.User_Permission_Action, err error) {
5330  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getActions", nil, &r.Options, &resp)
5331  	return
5332  }
5333  
5334  // Retrieve
5335  func (r User_Permission_Role) GetGroups() (resp []datatypes.User_Permission_Group, err error) {
5336  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getGroups", nil, &r.Options, &resp)
5337  	return
5338  }
5339  
5340  // no documentation yet
5341  func (r User_Permission_Role) GetObject() (resp datatypes.User_Permission_Role, err error) {
5342  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getObject", nil, &r.Options, &resp)
5343  	return
5344  }
5345  
5346  // Retrieve
5347  func (r User_Permission_Role) GetUsers() (resp []datatypes.User_Customer, err error) {
5348  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getUsers", nil, &r.Options, &resp)
5349  	return
5350  }
5351  
5352  // Links a SoftLayer_User_Permission_Group object to the role.
5353  func (r User_Permission_Role) LinkGroup(group *datatypes.User_Permission_Group) (err error) {
5354  	var resp datatypes.Void
5355  	params := []interface{}{
5356  		group,
5357  	}
5358  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "linkGroup", params, &r.Options, &resp)
5359  	return
5360  }
5361  
5362  // Unassigns a SoftLayer_User_Customer object from the role.
5363  func (r User_Permission_Role) RemoveUser(user *datatypes.User_Customer) (err error) {
5364  	var resp datatypes.Void
5365  	params := []interface{}{
5366  		user,
5367  	}
5368  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "removeUser", params, &r.Options, &resp)
5369  	return
5370  }
5371  
5372  // Unlinks a SoftLayer_User_Permission_Group object to the role.
5373  func (r User_Permission_Role) UnlinkGroup(group *datatypes.User_Permission_Group) (err error) {
5374  	var resp datatypes.Void
5375  	params := []interface{}{
5376  		group,
5377  	}
5378  	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "unlinkGroup", params, &r.Options, &resp)
5379  	return
5380  }
5381  
5382  // The SoftLayer_User_Security_Question data type contains questions.
5383  type User_Security_Question struct {
5384  	Session session.SLSession
5385  	Options sl.Options
5386  }
5387  
5388  // GetUserSecurityQuestionService returns an instance of the User_Security_Question SoftLayer service
5389  func GetUserSecurityQuestionService(sess session.SLSession) User_Security_Question {
5390  	return User_Security_Question{Session: sess}
5391  }
5392  
5393  func (r User_Security_Question) Id(id int) User_Security_Question {
5394  	r.Options.Id = &id
5395  	return r
5396  }
5397  
5398  func (r User_Security_Question) Mask(mask string) User_Security_Question {
5399  	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
5400  		mask = fmt.Sprintf("mask[%s]", mask)
5401  	}
5402  
5403  	r.Options.Mask = mask
5404  	return r
5405  }
5406  
5407  func (r User_Security_Question) Filter(filter string) User_Security_Question {
5408  	r.Options.Filter = filter
5409  	return r
5410  }
5411  
5412  func (r User_Security_Question) Limit(limit int) User_Security_Question {
5413  	r.Options.Limit = &limit
5414  	return r
5415  }
5416  
5417  func (r User_Security_Question) Offset(offset int) User_Security_Question {
5418  	r.Options.Offset = &offset
5419  	return r
5420  }
5421  
5422  // Retrieve all viewable security questions.
5423  func (r User_Security_Question) GetAllObjects() (resp []datatypes.User_Security_Question, err error) {
5424  	err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getAllObjects", nil, &r.Options, &resp)
5425  	return
5426  }
5427  
5428  // getAllObjects retrieves all the SoftLayer_User_Security_Question objects where it is set to be viewable.
5429  func (r User_Security_Question) GetObject() (resp datatypes.User_Security_Question, err error) {
5430  	err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getObject", nil, &r.Options, &resp)
5431  	return
5432  }
5433