github.com/FusionAuth/go-client@v0.0.0-20240425220342-2317e10dfcf5/pkg/fusionauth/Domain.go (about)

     1  /*
     2  * Copyright (c) 2019-2023, FusionAuth, All Rights Reserved
     3  *
     4  * Licensed under the Apache License, Version 2.0 (the "License");
     5  * you may not use this file except in compliance with the License.
     6  * You may obtain a copy of the License at
     7  *
     8  *   http://www.apache.org/licenses/LICENSE-2.0
     9  *
    10  * Unless required by applicable law or agreed to in writing,
    11  * software distributed under the License is distributed on an
    12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    13  * either express or implied. See the License for the specific
    14  * language governing permissions and limitations under the License.
    15   */
    16  
    17  package fusionauth
    18  
    19  import (
    20  	"fmt"
    21  	"strings"
    22  )
    23  
    24  type StatusAble interface {
    25  	SetStatus(status int)
    26  }
    27  
    28  /**
    29  * Base Response which contains the HTTP status code
    30  *
    31  * @author Matthew Altman
    32   */
    33  type BaseHTTPResponse struct {
    34  	StatusCode int `json:"statusCode,omitempty"`
    35  }
    36  
    37  func (b *BaseHTTPResponse) SetStatus(status int) {
    38  	b.StatusCode = status
    39  }
    40  
    41  /**
    42   * @author Rob Davis
    43   */
    44  type TenantLambdaConfiguration struct {
    45  	ScimEnterpriseUserRequestConverterId  string `json:"scimEnterpriseUserRequestConverterId,omitempty"`
    46  	ScimEnterpriseUserResponseConverterId string `json:"scimEnterpriseUserResponseConverterId,omitempty"`
    47  	ScimGroupRequestConverterId           string `json:"scimGroupRequestConverterId,omitempty"`
    48  	ScimGroupResponseConverterId          string `json:"scimGroupResponseConverterId,omitempty"`
    49  	ScimUserRequestConverterId            string `json:"scimUserRequestConverterId,omitempty"`
    50  	ScimUserResponseConverterId           string `json:"scimUserResponseConverterId,omitempty"`
    51  }
    52  
    53  type SAMLv2AssertionEncryptionConfiguration struct {
    54  	Enableable
    55  	DigestAlgorithm             string `json:"digestAlgorithm,omitempty"`
    56  	EncryptionAlgorithm         string `json:"encryptionAlgorithm,omitempty"`
    57  	KeyLocation                 string `json:"keyLocation,omitempty"`
    58  	KeyTransportAlgorithm       string `json:"keyTransportAlgorithm,omitempty"`
    59  	KeyTransportEncryptionKeyId string `json:"keyTransportEncryptionKeyId,omitempty"`
    60  	MaskGenerationFunction      string `json:"maskGenerationFunction,omitempty"`
    61  }
    62  
    63  /**
    64   * Models action reasons.
    65   *
    66   * @author Brian Pontarelli
    67   */
    68  type UserActionReason struct {
    69  	Code              string            `json:"code,omitempty"`
    70  	Id                string            `json:"id,omitempty"`
    71  	InsertInstant     int64             `json:"insertInstant,omitempty"`
    72  	LastUpdateInstant int64             `json:"lastUpdateInstant,omitempty"`
    73  	LocalizedTexts    map[string]string `json:"localizedTexts,omitempty"`
    74  	Text              string            `json:"text,omitempty"`
    75  }
    76  
    77  type AuthenticationTokenConfiguration struct {
    78  	Enableable
    79  }
    80  
    81  /**
    82   * Event event to an audit log was created.
    83   *
    84   * @author Daniel DeGroff
    85   */
    86  type AuditLogCreateEvent struct {
    87  	BaseEvent
    88  	AuditLog AuditLog `json:"auditLog,omitempty"`
    89  }
    90  
    91  /**
    92   * Models the FusionAuth connector.
    93   *
    94   * @author Trevor Smith
    95   */
    96  type FusionAuthConnectorConfiguration struct {
    97  	BaseConnectorConfiguration
    98  }
    99  
   100  /**
   101   * @author Brian Pontarelli
   102   */
   103  type AuditLogRequest struct {
   104  	BaseEventRequest
   105  	AuditLog AuditLog `json:"auditLog,omitempty"`
   106  }
   107  
   108  /**
   109   * @author Brett Guy
   110   */
   111  type IPAccessControlList struct {
   112  	Data              map[string]interface{} `json:"data,omitempty"`
   113  	Entries           []IPAccessControlEntry `json:"entries,omitempty"`
   114  	Id                string                 `json:"id,omitempty"`
   115  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
   116  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
   117  	Name              string                 `json:"name,omitempty"`
   118  }
   119  
   120  /**
   121   * @author Lyle Schemmerling
   122   */
   123  type SAMLv2DestinationAssertionConfiguration struct {
   124  	Alternates []string                         `json:"alternates,omitempty"`
   125  	Policy     SAMLv2DestinationAssertionPolicy `json:"policy,omitempty"`
   126  }
   127  
   128  /**
   129   * Form response.
   130   *
   131   * @author Daniel DeGroff
   132   */
   133  type FormRequest struct {
   134  	Form Form `json:"form,omitempty"`
   135  }
   136  
   137  /**
   138   * @author Seth Musselman
   139   */
   140  type UserCommentRequest struct {
   141  	UserComment UserComment `json:"userComment,omitempty"`
   142  }
   143  
   144  /**
   145   * IdP Initiated login configuration
   146   *
   147   * @author Daniel DeGroff
   148   */
   149  type SAMLv2IdPInitiatedLoginConfiguration struct {
   150  	Enableable
   151  	NameIdFormat string `json:"nameIdFormat,omitempty"`
   152  }
   153  
   154  type DeleteConfiguration struct {
   155  	Enableable
   156  	NumberOfDaysToRetain int `json:"numberOfDaysToRetain,omitempty"`
   157  }
   158  
   159  /**
   160   * @author Daniel DeGroff
   161   */
   162  type FormDataType string
   163  
   164  func (e FormDataType) String() string {
   165  	return string(e)
   166  }
   167  
   168  const (
   169  	FormDataType_Bool    FormDataType = "bool"
   170  	FormDataType_Consent FormDataType = "consent"
   171  	FormDataType_Date    FormDataType = "date"
   172  	FormDataType_Email   FormDataType = "email"
   173  	FormDataType_Number  FormDataType = "number"
   174  	FormDataType_String  FormDataType = "string"
   175  )
   176  
   177  /**
   178   * Key search response
   179   *
   180   * @author Spencer Witt
   181   */
   182  type KeySearchResponse struct {
   183  	BaseHTTPResponse
   184  	Keys  []Key `json:"keys,omitempty"`
   185  	Total int64 `json:"total,omitempty"`
   186  }
   187  
   188  func (b *KeySearchResponse) SetStatus(status int) {
   189  	b.StatusCode = status
   190  }
   191  
   192  /**
   193   * A Application-level policy for deleting Users.
   194   *
   195   * @author Trevor Smith
   196   */
   197  type ApplicationRegistrationDeletePolicy struct {
   198  	Unverified TimeBasedDeletePolicy `json:"unverified,omitempty"`
   199  }
   200  
   201  /**
   202   * Models the User Delete Registration Event.
   203   *
   204   * @author Daniel DeGroff
   205   */
   206  type UserRegistrationDeleteEvent struct {
   207  	BaseEvent
   208  	ApplicationId string           `json:"applicationId,omitempty"`
   209  	Registration  UserRegistration `json:"registration,omitempty"`
   210  	User          User             `json:"user,omitempty"`
   211  }
   212  
   213  /**
   214   * @author Daniel DeGroff
   215   */
   216  type AccessToken struct {
   217  	BaseHTTPResponse
   218  	AccessToken    string    `json:"access_token,omitempty"`
   219  	ExpiresIn      int       `json:"expires_in,omitempty"`
   220  	IdToken        string    `json:"id_token,omitempty"`
   221  	RefreshToken   string    `json:"refresh_token,omitempty"`
   222  	RefreshTokenId string    `json:"refresh_token_id,omitempty"`
   223  	Scope          string    `json:"scope,omitempty"`
   224  	TokenType      TokenType `json:"token_type,omitempty"`
   225  	UserId         string    `json:"userId,omitempty"`
   226  }
   227  
   228  func (b *AccessToken) SetStatus(status int) {
   229  	b.StatusCode = status
   230  }
   231  
   232  /**
   233   * Search request for Group Members.
   234   *
   235   * @author Daniel DeGroff
   236   */
   237  type GroupMemberSearchRequest struct {
   238  	Search GroupMemberSearchCriteria `json:"search,omitempty"`
   239  }
   240  
   241  type MultiFactorSMSTemplate struct {
   242  	TemplateId string `json:"templateId,omitempty"`
   243  }
   244  
   245  /**
   246   * A log for an event that happened to a User.
   247   *
   248   * @author Brian Pontarelli
   249   */
   250  type UserComment struct {
   251  	Comment       string `json:"comment,omitempty"`
   252  	CommenterId   string `json:"commenterId,omitempty"`
   253  	Id            string `json:"id,omitempty"`
   254  	InsertInstant int64  `json:"insertInstant,omitempty"`
   255  	UserId        string `json:"userId,omitempty"`
   256  }
   257  
   258  /**
   259   * Models the Group Create Complete Event.
   260   *
   261   * @author Daniel DeGroff
   262   */
   263  type GroupDeleteCompleteEvent struct {
   264  	BaseEvent
   265  	Group Group `json:"group,omitempty"`
   266  }
   267  
   268  /**
   269   * Email template search response
   270   *
   271   * @author Mark Manes
   272   */
   273  type EmailTemplateSearchResponse struct {
   274  	BaseHTTPResponse
   275  	EmailTemplates []EmailTemplate `json:"emailTemplates,omitempty"`
   276  	Total          int64           `json:"total,omitempty"`
   277  }
   278  
   279  func (b *EmailTemplateSearchResponse) SetStatus(status int) {
   280  	b.StatusCode = status
   281  }
   282  
   283  /**
   284   * A marker interface indicating this event is not scoped to a tenant and will be sent to all webhooks.
   285   *
   286   * @author Daniel DeGroff
   287   */
   288  type InstanceEvent struct {
   289  	NonTransactionalEvent
   290  }
   291  
   292  /**
   293   * Models the user action Event.
   294   *
   295   * @author Brian Pontarelli
   296   */
   297  type UserActionEvent struct {
   298  	BaseEvent
   299  	Action            string          `json:"action,omitempty"`
   300  	ActioneeUserId    string          `json:"actioneeUserId,omitempty"`
   301  	ActionerUserId    string          `json:"actionerUserId,omitempty"`
   302  	ActionId          string          `json:"actionId,omitempty"`
   303  	ApplicationIds    []string        `json:"applicationIds,omitempty"`
   304  	Comment           string          `json:"comment,omitempty"`
   305  	Email             Email           `json:"email,omitempty"`
   306  	EmailedUser       bool            `json:"emailedUser"`
   307  	Expiry            int64           `json:"expiry,omitempty"`
   308  	LocalizedAction   string          `json:"localizedAction,omitempty"`
   309  	LocalizedDuration string          `json:"localizedDuration,omitempty"`
   310  	LocalizedOption   string          `json:"localizedOption,omitempty"`
   311  	LocalizedReason   string          `json:"localizedReason,omitempty"`
   312  	NotifyUser        bool            `json:"notifyUser"`
   313  	Option            string          `json:"option,omitempty"`
   314  	Phase             UserActionPhase `json:"phase,omitempty"`
   315  	Reason            string          `json:"reason,omitempty"`
   316  	ReasonCode        string          `json:"reasonCode,omitempty"`
   317  }
   318  
   319  /**
   320   * @author Daniel DeGroff
   321   */
   322  type BreachedPasswordStatus string
   323  
   324  func (e BreachedPasswordStatus) String() string {
   325  	return string(e)
   326  }
   327  
   328  const (
   329  	BreachedPasswordStatus_None            BreachedPasswordStatus = "None"
   330  	BreachedPasswordStatus_ExactMatch      BreachedPasswordStatus = "ExactMatch"
   331  	BreachedPasswordStatus_SubAddressMatch BreachedPasswordStatus = "SubAddressMatch"
   332  	BreachedPasswordStatus_PasswordOnly    BreachedPasswordStatus = "PasswordOnly"
   333  	BreachedPasswordStatus_CommonPassword  BreachedPasswordStatus = "CommonPassword"
   334  )
   335  
   336  /**
   337   * @author Michael Sleevi
   338   */
   339  type SMSMessage struct {
   340  	PhoneNumber string `json:"phoneNumber,omitempty"`
   341  	TextMessage string `json:"textMessage,omitempty"`
   342  }
   343  
   344  /**
   345   * @author Daniel DeGroff
   346   */
   347  type TwitterApplicationConfiguration struct {
   348  	BaseIdentityProviderApplicationConfiguration
   349  	ButtonText     string `json:"buttonText,omitempty"`
   350  	ConsumerKey    string `json:"consumerKey,omitempty"`
   351  	ConsumerSecret string `json:"consumerSecret,omitempty"`
   352  }
   353  
   354  /**
   355   * A User's WebAuthnCredential. Contains all data required to complete WebAuthn authentication ceremonies.
   356   *
   357   * @author Spencer Witt
   358   */
   359  type WebAuthnCredential struct {
   360  	Algorithm                             CoseAlgorithmIdentifier `json:"algorithm,omitempty"`
   361  	AttestationType                       AttestationType         `json:"attestationType,omitempty"`
   362  	AuthenticatorSupportsUserVerification bool                    `json:"authenticatorSupportsUserVerification"`
   363  	CredentialId                          string                  `json:"credentialId,omitempty"`
   364  	Data                                  map[string]interface{}  `json:"data,omitempty"`
   365  	Discoverable                          bool                    `json:"discoverable"`
   366  	DisplayName                           string                  `json:"displayName,omitempty"`
   367  	Id                                    string                  `json:"id,omitempty"`
   368  	InsertInstant                         int64                   `json:"insertInstant,omitempty"`
   369  	LastUseInstant                        int64                   `json:"lastUseInstant,omitempty"`
   370  	Name                                  string                  `json:"name,omitempty"`
   371  	PublicKey                             string                  `json:"publicKey,omitempty"`
   372  	RelyingPartyId                        string                  `json:"relyingPartyId,omitempty"`
   373  	SignCount                             int                     `json:"signCount,omitempty"`
   374  	TenantId                              string                  `json:"tenantId,omitempty"`
   375  	Transports                            []string                `json:"transports,omitempty"`
   376  	UserAgent                             string                  `json:"userAgent,omitempty"`
   377  	UserId                                string                  `json:"userId,omitempty"`
   378  }
   379  
   380  type LambdaConfiguration struct {
   381  	AccessTokenPopulateId               string `json:"accessTokenPopulateId,omitempty"`
   382  	IdTokenPopulateId                   string `json:"idTokenPopulateId,omitempty"`
   383  	Samlv2PopulateId                    string `json:"samlv2PopulateId,omitempty"`
   384  	SelfServiceRegistrationValidationId string `json:"selfServiceRegistrationValidationId,omitempty"`
   385  	UserinfoPopulateId                  string `json:"userinfoPopulateId,omitempty"`
   386  }
   387  
   388  /**
   389   * @author Daniel DeGroff
   390   */
   391  type RegistrationUnverifiedOptions struct {
   392  	Behavior UnverifiedBehavior `json:"behavior,omitempty"`
   393  }
   394  
   395  /**
   396   * Models a consent.
   397   *
   398   * @author Daniel DeGroff
   399   */
   400  type ConsentStatus string
   401  
   402  func (e ConsentStatus) String() string {
   403  	return string(e)
   404  }
   405  
   406  const (
   407  	ConsentStatus_Active  ConsentStatus = "Active"
   408  	ConsentStatus_Revoked ConsentStatus = "Revoked"
   409  )
   410  
   411  /**
   412   * Contains the output for the {@code credProps} extension
   413   *
   414   * @author Spencer Witt
   415   */
   416  type CredentialPropertiesOutput struct {
   417  	Rk bool `json:"rk"`
   418  }
   419  
   420  /**
   421   * @author Daniel DeGroff
   422   */
   423  type VerifyRegistrationRequest struct {
   424  	BaseEventRequest
   425  	OneTimeCode    string `json:"oneTimeCode,omitempty"`
   426  	VerificationId string `json:"verificationId,omitempty"`
   427  }
   428  
   429  /**
   430   * Stores an email template used to send emails to users.
   431   *
   432   * @author Brian Pontarelli
   433   */
   434  type EmailTemplate struct {
   435  	DefaultFromName        string            `json:"defaultFromName,omitempty"`
   436  	DefaultHtmlTemplate    string            `json:"defaultHtmlTemplate,omitempty"`
   437  	DefaultSubject         string            `json:"defaultSubject,omitempty"`
   438  	DefaultTextTemplate    string            `json:"defaultTextTemplate,omitempty"`
   439  	FromEmail              string            `json:"fromEmail,omitempty"`
   440  	Id                     string            `json:"id,omitempty"`
   441  	InsertInstant          int64             `json:"insertInstant,omitempty"`
   442  	LastUpdateInstant      int64             `json:"lastUpdateInstant,omitempty"`
   443  	LocalizedFromNames     map[string]string `json:"localizedFromNames,omitempty"`
   444  	LocalizedHtmlTemplates map[string]string `json:"localizedHtmlTemplates,omitempty"`
   445  	LocalizedSubjects      map[string]string `json:"localizedSubjects,omitempty"`
   446  	LocalizedTextTemplates map[string]string `json:"localizedTextTemplates,omitempty"`
   447  	Name                   string            `json:"name,omitempty"`
   448  }
   449  
   450  /**
   451   * Models the User Email Verify Event.
   452   *
   453   * @author Trevor Smith
   454   */
   455  type UserEmailVerifiedEvent struct {
   456  	BaseEvent
   457  	User User `json:"user,omitempty"`
   458  }
   459  
   460  /**
   461   * @author Daniel DeGroff
   462   */
   463  type ApplicationAccessControlConfiguration struct {
   464  	UiIPAccessControlListId string `json:"uiIPAccessControlListId,omitempty"`
   465  }
   466  
   467  /**
   468   * Form response.
   469   *
   470   * @author Daniel DeGroff
   471   */
   472  type FormResponse struct {
   473  	BaseHTTPResponse
   474  	Form  Form   `json:"form,omitempty"`
   475  	Forms []Form `json:"forms,omitempty"`
   476  }
   477  
   478  func (b *FormResponse) SetStatus(status int) {
   479  	b.StatusCode = status
   480  }
   481  
   482  /**
   483   * @author Daniel DeGroff
   484   */
   485  type ApplicationMultiFactorTrustPolicy string
   486  
   487  func (e ApplicationMultiFactorTrustPolicy) String() string {
   488  	return string(e)
   489  }
   490  
   491  const (
   492  	ApplicationMultiFactorTrustPolicy_Any  ApplicationMultiFactorTrustPolicy = "Any"
   493  	ApplicationMultiFactorTrustPolicy_This ApplicationMultiFactorTrustPolicy = "This"
   494  	ApplicationMultiFactorTrustPolicy_None ApplicationMultiFactorTrustPolicy = "None"
   495  )
   496  
   497  /**
   498   * A JSON Web Key as defined by <a href="https://tools.ietf.org/html/rfc7517#section-4">RFC 7517 JSON Web Key (JWK)
   499   * Section 4</a> and <a href="https://tools.ietf.org/html/rfc7518">RFC 7518 JSON Web Algorithms (JWA)</a>.
   500   *
   501   * @author Daniel DeGroff
   502   */
   503  type JSONWebKey struct {
   504  	Alg      Algorithm              `json:"alg,omitempty"`
   505  	Crv      string                 `json:"crv,omitempty"`
   506  	D        string                 `json:"d,omitempty"`
   507  	Dp       string                 `json:"dp,omitempty"`
   508  	Dq       string                 `json:"dq,omitempty"`
   509  	E        string                 `json:"e,omitempty"`
   510  	Kid      string                 `json:"kid,omitempty"`
   511  	Kty      KeyType                `json:"kty,omitempty"`
   512  	N        string                 `json:"n,omitempty"`
   513  	Other    map[string]interface{} `json:"other,omitempty"`
   514  	P        string                 `json:"p,omitempty"`
   515  	Q        string                 `json:"q,omitempty"`
   516  	Qi       string                 `json:"qi,omitempty"`
   517  	Use      string                 `json:"use,omitempty"`
   518  	X        string                 `json:"x,omitempty"`
   519  	X5c      []string               `json:"x5c,omitempty"`
   520  	X5t      string                 `json:"x5t,omitempty"`
   521  	X5t_S256 string                 `json:"x5t#S256,omitempty"`
   522  	Y        string                 `json:"y,omitempty"`
   523  }
   524  
   525  /**
   526   * Search request for Consents
   527   *
   528   * @author Spencer Witt
   529   */
   530  type ConsentSearchRequest struct {
   531  	Search ConsentSearchCriteria `json:"search,omitempty"`
   532  }
   533  
   534  /**
   535   * Models the User Reactivate Event.
   536   *
   537   * @author Brian Pontarelli
   538   */
   539  type UserReactivateEvent struct {
   540  	BaseEvent
   541  	User User `json:"user,omitempty"`
   542  }
   543  
   544  /**
   545   * OpenID Connect Configuration as described by the <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata">OpenID
   546   * Provider Metadata</a>.
   547   *
   548   * @author Daniel DeGroff
   549   */
   550  type OpenIdConfiguration struct {
   551  	BaseHTTPResponse
   552  	AuthorizationEndpoint             string   `json:"authorization_endpoint,omitempty"`
   553  	BackchannelLogoutSupported        bool     `json:"backchannel_logout_supported"`
   554  	ClaimsSupported                   []string `json:"claims_supported,omitempty"`
   555  	DeviceAuthorizationEndpoint       string   `json:"device_authorization_endpoint,omitempty"`
   556  	EndSessionEndpoint                string   `json:"end_session_endpoint,omitempty"`
   557  	FrontchannelLogoutSupported       bool     `json:"frontchannel_logout_supported"`
   558  	GrantTypesSupported               []string `json:"grant_types_supported,omitempty"`
   559  	IdTokenSigningAlgValuesSupported  []string `json:"id_token_signing_alg_values_supported,omitempty"`
   560  	Issuer                            string   `json:"issuer,omitempty"`
   561  	JwksUri                           string   `json:"jwks_uri,omitempty"`
   562  	ResponseModesSupported            []string `json:"response_modes_supported,omitempty"`
   563  	ResponseTypesSupported            []string `json:"response_types_supported,omitempty"`
   564  	ScopesSupported                   []string `json:"scopes_supported,omitempty"`
   565  	SubjectTypesSupported             []string `json:"subject_types_supported,omitempty"`
   566  	TokenEndpoint                     string   `json:"token_endpoint,omitempty"`
   567  	TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported,omitempty"`
   568  	UserinfoEndpoint                  string   `json:"userinfo_endpoint,omitempty"`
   569  	UserinfoSigningAlgValuesSupported []string `json:"userinfo_signing_alg_values_supported,omitempty"`
   570  }
   571  
   572  func (b *OpenIdConfiguration) SetStatus(status int) {
   573  	b.StatusCode = status
   574  }
   575  
   576  /**
   577   * This class is the user query. It provides a build pattern as well as public fields for use on forms and in actions.
   578   *
   579   * @author Brian Pontarelli
   580   */
   581  type UserSearchCriteria struct {
   582  	BaseElasticSearchCriteria
   583  }
   584  
   585  /**
   586   * @author Daniel DeGroff
   587   */
   588  type UserState string
   589  
   590  func (e UserState) String() string {
   591  	return string(e)
   592  }
   593  
   594  const (
   595  	UserState_Authenticated                        UserState = "Authenticated"
   596  	UserState_AuthenticatedNotRegistered           UserState = "AuthenticatedNotRegistered"
   597  	UserState_AuthenticatedNotVerified             UserState = "AuthenticatedNotVerified"
   598  	UserState_AuthenticatedRegistrationNotVerified UserState = "AuthenticatedRegistrationNotVerified"
   599  )
   600  
   601  /**
   602   * Models a JWT Refresh Token.
   603   *
   604   * @author Daniel DeGroff
   605   */
   606  type RefreshToken struct {
   607  	ApplicationId string                 `json:"applicationId,omitempty"`
   608  	Data          map[string]interface{} `json:"data,omitempty"`
   609  	Id            string                 `json:"id,omitempty"`
   610  	InsertInstant int64                  `json:"insertInstant,omitempty"`
   611  	MetaData      MetaData               `json:"metaData,omitempty"`
   612  	StartInstant  int64                  `json:"startInstant,omitempty"`
   613  	TenantId      string                 `json:"tenantId,omitempty"`
   614  	Token         string                 `json:"token,omitempty"`
   615  	UserId        string                 `json:"userId,omitempty"`
   616  }
   617  
   618  /**
   619   * Search criteria for entity grants.
   620   *
   621   * @author Brian Pontarelli
   622   */
   623  type EntityGrantSearchCriteria struct {
   624  	BaseSearchCriteria
   625  	EntityId string `json:"entityId,omitempty"`
   626  	Name     string `json:"name,omitempty"`
   627  	UserId   string `json:"userId,omitempty"`
   628  }
   629  
   630  /**
   631   * This class is an abstraction of a simple email message.
   632   *
   633   * @author Brian Pontarelli
   634   */
   635  type Email struct {
   636  	Attachments []Attachment   `json:"attachments,omitempty"`
   637  	Bcc         []EmailAddress `json:"bcc,omitempty"`
   638  	Cc          []EmailAddress `json:"cc,omitempty"`
   639  	From        EmailAddress   `json:"from,omitempty"`
   640  	Html        string         `json:"html,omitempty"`
   641  	ReplyTo     EmailAddress   `json:"replyTo,omitempty"`
   642  	Subject     string         `json:"subject,omitempty"`
   643  	Text        string         `json:"text,omitempty"`
   644  	To          []EmailAddress `json:"to,omitempty"`
   645  }
   646  
   647  /**
   648   * An audit log.
   649   *
   650   * @author Brian Pontarelli
   651   */
   652  type AuditLog struct {
   653  	Data          map[string]interface{} `json:"data,omitempty"`
   654  	Id            int64                  `json:"id,omitempty"`
   655  	InsertInstant int64                  `json:"insertInstant,omitempty"`
   656  	InsertUser    string                 `json:"insertUser,omitempty"`
   657  	Message       string                 `json:"message,omitempty"`
   658  	NewValue      interface{}            `json:"newValue,omitempty"`
   659  	OldValue      interface{}            `json:"oldValue,omitempty"`
   660  	Reason        string                 `json:"reason,omitempty"`
   661  }
   662  
   663  /**
   664   * Models the User Identity Provider Link Event.
   665   *
   666   * @author Rob Davis
   667   */
   668  type UserIdentityProviderLinkEvent struct {
   669  	BaseEvent
   670  	IdentityProviderLink IdentityProviderLink `json:"identityProviderLink,omitempty"`
   671  	User                 User                 `json:"user,omitempty"`
   672  }
   673  
   674  /**
   675   * Application search response
   676   *
   677   * @author Spencer Witt
   678   */
   679  type ApplicationSearchResponse struct {
   680  	BaseHTTPResponse
   681  	ExpandableResponse
   682  	Applications []Application `json:"applications,omitempty"`
   683  	Total        int64         `json:"total,omitempty"`
   684  }
   685  
   686  func (b *ApplicationSearchResponse) SetStatus(status int) {
   687  	b.StatusCode = status
   688  }
   689  
   690  /**
   691   * @author Daniel DeGroff
   692   */
   693  type OAuthConfigurationResponse struct {
   694  	BaseHTTPResponse
   695  	HttpSessionMaxInactiveInterval int                 `json:"httpSessionMaxInactiveInterval,omitempty"`
   696  	LogoutURL                      string              `json:"logoutURL,omitempty"`
   697  	OauthConfiguration             OAuth2Configuration `json:"oauthConfiguration,omitempty"`
   698  }
   699  
   700  func (b *OAuthConfigurationResponse) SetStatus(status int) {
   701  	b.StatusCode = status
   702  }
   703  
   704  /**
   705   * Contains attributes for the Relying Party to refer to an existing public key credential as an input parameter.
   706   *
   707   * @author Spencer Witt
   708   */
   709  type PublicKeyCredentialDescriptor struct {
   710  	Id         string                  `json:"id,omitempty"`
   711  	Transports []string                `json:"transports,omitempty"`
   712  	Type       PublicKeyCredentialType `json:"type,omitempty"`
   713  }
   714  
   715  /**
   716   * @author Brian Pontarelli
   717   */
   718  type PendingResponse struct {
   719  	BaseHTTPResponse
   720  	Users []User `json:"users,omitempty"`
   721  }
   722  
   723  func (b *PendingResponse) SetStatus(status int) {
   724  	b.StatusCode = status
   725  }
   726  
   727  /**
   728   * Steam gaming login provider.
   729   *
   730   * @author Brett Pontarelli
   731   */
   732  type SteamIdentityProvider struct {
   733  	BaseIdentityProvider
   734  	ApiMode    SteamAPIMode `json:"apiMode,omitempty"`
   735  	ButtonText string       `json:"buttonText,omitempty"`
   736  	ClientId   string       `json:"client_id,omitempty"`
   737  	Scope      string       `json:"scope,omitempty"`
   738  	WebAPIKey  string       `json:"webAPIKey,omitempty"`
   739  }
   740  
   741  /**
   742   * Allows the Relying Party to specify desired attributes of a new credential.
   743   *
   744   * @author Spencer Witt
   745   */
   746  type PublicKeyCredentialCreationOptions struct {
   747  	Attestation            AttestationConveyancePreference       `json:"attestation,omitempty"`
   748  	AuthenticatorSelection AuthenticatorSelectionCriteria        `json:"authenticatorSelection,omitempty"`
   749  	Challenge              string                                `json:"challenge,omitempty"`
   750  	ExcludeCredentials     []PublicKeyCredentialDescriptor       `json:"excludeCredentials,omitempty"`
   751  	Extensions             WebAuthnRegistrationExtensionOptions  `json:"extensions,omitempty"`
   752  	PubKeyCredParams       []PublicKeyCredentialParameters       `json:"pubKeyCredParams,omitempty"`
   753  	Rp                     PublicKeyCredentialRelyingPartyEntity `json:"rp,omitempty"`
   754  	Timeout                int64                                 `json:"timeout,omitempty"`
   755  	User                   PublicKeyCredentialUserEntity         `json:"user,omitempty"`
   756  }
   757  
   758  /**
   759   * Authorization Grant types as defined by the <a href="https://tools.ietf.org/html/rfc6749">The OAuth 2.0 Authorization
   760   * Framework - RFC 6749</a>.
   761   * <p>
   762   * Specific names as defined by <a href="https://tools.ietf.org/html/rfc7591#section-4.1">
   763   * OAuth 2.0 Dynamic Client Registration Protocol - RFC 7591 Section 4.1</a>
   764   *
   765   * @author Daniel DeGroff
   766   */
   767  type GrantType string
   768  
   769  func (e GrantType) String() string {
   770  	return string(e)
   771  }
   772  
   773  const (
   774  	GrantType_AuthorizationCode GrantType = "authorization_code"
   775  	GrantType_Implicit          GrantType = "implicit"
   776  	GrantType_Password          GrantType = "password"
   777  	GrantType_ClientCredentials GrantType = "client_credentials"
   778  	GrantType_RefreshToken      GrantType = "refresh_token"
   779  	GrantType_Unknown           GrantType = "unknown"
   780  	GrantType_DeviceCode        GrantType = "urn:ietf:params:oauth:grant-type:device_code"
   781  )
   782  
   783  /**
   784   * A User's membership into a Group
   785   *
   786   * @author Daniel DeGroff
   787   */
   788  type GroupMember struct {
   789  	Data          map[string]interface{} `json:"data,omitempty"`
   790  	GroupId       string                 `json:"groupId,omitempty"`
   791  	Id            string                 `json:"id,omitempty"`
   792  	InsertInstant int64                  `json:"insertInstant,omitempty"`
   793  	User          User                   `json:"user,omitempty"`
   794  	UserId        string                 `json:"userId,omitempty"`
   795  }
   796  
   797  /**
   798   * Models the User Update Event.
   799   *
   800   * @author Brian Pontarelli
   801   */
   802  type UserUpdateEvent struct {
   803  	BaseEvent
   804  	Original User `json:"original,omitempty"`
   805  	User     User `json:"user,omitempty"`
   806  }
   807  
   808  /**
   809   * The application's relationship to the authorization server. First-party applications will be granted implicit permission for requested scopes.
   810   * Third-party applications will use the {@link OAuthScopeConsentMode} policy.
   811   *
   812   * @author Spencer Witt
   813   */
   814  type OAuthApplicationRelationship string
   815  
   816  func (e OAuthApplicationRelationship) String() string {
   817  	return string(e)
   818  }
   819  
   820  const (
   821  	OAuthApplicationRelationship_FirstParty OAuthApplicationRelationship = "FirstParty"
   822  	OAuthApplicationRelationship_ThirdParty OAuthApplicationRelationship = "ThirdParty"
   823  )
   824  
   825  /**
   826   * The summary of the action that is preventing login to be returned on the login response.
   827   *
   828   * @author Daniel DeGroff
   829   */
   830  type LoginPreventedResponse struct {
   831  	BaseHTTPResponse
   832  	ActionerUserId  string `json:"actionerUserId,omitempty"`
   833  	ActionId        string `json:"actionId,omitempty"`
   834  	Expiry          int64  `json:"expiry,omitempty"`
   835  	LocalizedName   string `json:"localizedName,omitempty"`
   836  	LocalizedOption string `json:"localizedOption,omitempty"`
   837  	LocalizedReason string `json:"localizedReason,omitempty"`
   838  	Name            string `json:"name,omitempty"`
   839  	Option          string `json:"option,omitempty"`
   840  	Reason          string `json:"reason,omitempty"`
   841  	ReasonCode      string `json:"reasonCode,omitempty"`
   842  }
   843  
   844  func (b *LoginPreventedResponse) SetStatus(status int) {
   845  	b.StatusCode = status
   846  }
   847  
   848  /**
   849   * This class is the entity query. It provides a build pattern as well as public fields for use on forms and in actions.
   850   *
   851   * @author Brian Pontarelli
   852   */
   853  type EntitySearchCriteria struct {
   854  	BaseElasticSearchCriteria
   855  }
   856  
   857  /**
   858   * Theme API request object.
   859   *
   860   * @author Trevor Smith
   861   */
   862  type ThemeRequest struct {
   863  	SourceThemeId string `json:"sourceThemeId,omitempty"`
   864  	Theme         Theme  `json:"theme,omitempty"`
   865  }
   866  
   867  /**
   868   * @author Daniel DeGroff
   869   */
   870  type PasswordlessSendRequest struct {
   871  	ApplicationId string                 `json:"applicationId,omitempty"`
   872  	Code          string                 `json:"code,omitempty"`
   873  	LoginId       string                 `json:"loginId,omitempty"`
   874  	State         map[string]interface{} `json:"state,omitempty"`
   875  }
   876  
   877  /**
   878   * Models the User Login event for a new device (un-recognized)
   879   *
   880   * @author Daniel DeGroff
   881   */
   882  type UserLoginNewDeviceEvent struct {
   883  	UserLoginSuccessEvent
   884  }
   885  
   886  /**
   887   * Key API response object.
   888   *
   889   * @author Daniel DeGroff
   890   */
   891  type KeyResponse struct {
   892  	BaseHTTPResponse
   893  	Key  Key   `json:"key,omitempty"`
   894  	Keys []Key `json:"keys,omitempty"`
   895  }
   896  
   897  func (b *KeyResponse) SetStatus(status int) {
   898  	b.StatusCode = status
   899  }
   900  
   901  /**
   902   * @author Brett Guy
   903   */
   904  type TwoFactorStartRequest struct {
   905  	ApplicationId  string                 `json:"applicationId,omitempty"`
   906  	Code           string                 `json:"code,omitempty"`
   907  	LoginId        string                 `json:"loginId,omitempty"`
   908  	State          map[string]interface{} `json:"state,omitempty"`
   909  	TrustChallenge string                 `json:"trustChallenge,omitempty"`
   910  	UserId         string                 `json:"userId,omitempty"`
   911  }
   912  
   913  /**
   914   * Models the Group Create Event.
   915   *
   916   * @author Daniel DeGroff
   917   */
   918  type GroupCreateEvent struct {
   919  	BaseEvent
   920  	Group Group `json:"group,omitempty"`
   921  }
   922  
   923  /**
   924   * @author Trevor Smith
   925   */
   926  type ConnectorPolicy struct {
   927  	ConnectorId string                 `json:"connectorId,omitempty"`
   928  	Data        map[string]interface{} `json:"data,omitempty"`
   929  	Domains     []string               `json:"domains,omitempty"`
   930  	Migrate     bool                   `json:"migrate"`
   931  }
   932  
   933  /**
   934   * @author Daniel DeGroff
   935   */
   936  type FormField struct {
   937  	Confirm           bool                   `json:"confirm"`
   938  	ConsentId         string                 `json:"consentId,omitempty"`
   939  	Control           FormControl            `json:"control,omitempty"`
   940  	Data              map[string]interface{} `json:"data,omitempty"`
   941  	Description       string                 `json:"description,omitempty"`
   942  	Id                string                 `json:"id,omitempty"`
   943  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
   944  	Key               string                 `json:"key,omitempty"`
   945  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
   946  	Name              string                 `json:"name,omitempty"`
   947  	Options           []string               `json:"options,omitempty"`
   948  	Required          bool                   `json:"required"`
   949  	Type              FormDataType           `json:"type,omitempty"`
   950  	Validator         FormFieldValidator     `json:"validator,omitempty"`
   951  }
   952  
   953  /**
   954   * @author Brian Pontarelli
   955   */
   956  type FamilyConfiguration struct {
   957  	Enableable
   958  	AllowChildRegistrations           bool   `json:"allowChildRegistrations"`
   959  	ConfirmChildEmailTemplateId       string `json:"confirmChildEmailTemplateId,omitempty"`
   960  	DeleteOrphanedAccounts            bool   `json:"deleteOrphanedAccounts"`
   961  	DeleteOrphanedAccountsDays        int    `json:"deleteOrphanedAccountsDays,omitempty"`
   962  	FamilyRequestEmailTemplateId      string `json:"familyRequestEmailTemplateId,omitempty"`
   963  	MaximumChildAge                   int    `json:"maximumChildAge,omitempty"`
   964  	MinimumOwnerAge                   int    `json:"minimumOwnerAge,omitempty"`
   965  	ParentEmailRequired               bool   `json:"parentEmailRequired"`
   966  	ParentRegistrationEmailTemplateId string `json:"parentRegistrationEmailTemplateId,omitempty"`
   967  }
   968  
   969  /**
   970   * @author Brett Pontarelli
   971   */
   972  type TwitchApplicationConfiguration struct {
   973  	BaseIdentityProviderApplicationConfiguration
   974  	ButtonText   string `json:"buttonText,omitempty"`
   975  	ClientId     string `json:"client_id,omitempty"`
   976  	ClientSecret string `json:"client_secret,omitempty"`
   977  	Scope        string `json:"scope,omitempty"`
   978  }
   979  
   980  /**
   981   * A displayable raw login that includes application name and user loginId.
   982   *
   983   * @author Brian Pontarelli
   984   */
   985  type DisplayableRawLogin struct {
   986  	RawLogin
   987  	ApplicationName string   `json:"applicationName,omitempty"`
   988  	Location        Location `json:"location,omitempty"`
   989  	LoginId         string   `json:"loginId,omitempty"`
   990  }
   991  
   992  type SAMLv2SingleLogout struct {
   993  	Enableable
   994  	KeyId                  string                 `json:"keyId,omitempty"`
   995  	Url                    string                 `json:"url,omitempty"`
   996  	XmlSignatureC14nMethod CanonicalizationMethod `json:"xmlSignatureC14nMethod,omitempty"`
   997  }
   998  
   999  /**
  1000   * @author Daniel DeGroff
  1001   */
  1002  type OpenIdConnectApplicationConfiguration struct {
  1003  	BaseIdentityProviderApplicationConfiguration
  1004  	ButtonImageURL string                              `json:"buttonImageURL,omitempty"`
  1005  	ButtonText     string                              `json:"buttonText,omitempty"`
  1006  	Oauth2         IdentityProviderOauth2Configuration `json:"oauth2,omitempty"`
  1007  }
  1008  
  1009  /**
  1010   * @author Daniel DeGroff
  1011   */
  1012  type ApplicationFormConfiguration struct {
  1013  	AdminRegistrationFormId      string                       `json:"adminRegistrationFormId,omitempty"`
  1014  	SelfServiceFormConfiguration SelfServiceFormConfiguration `json:"selfServiceFormConfiguration,omitempty"`
  1015  	SelfServiceFormId            string                       `json:"selfServiceFormId,omitempty"`
  1016  }
  1017  
  1018  /**
  1019   * A policy for deleting Users based upon some external criteria.
  1020   *
  1021   * @author Trevor Smith
  1022   */
  1023  type TimeBasedDeletePolicy struct {
  1024  	Enableable
  1025  	EnabledInstant       int64 `json:"enabledInstant,omitempty"`
  1026  	NumberOfDaysToRetain int   `json:"numberOfDaysToRetain,omitempty"`
  1027  }
  1028  
  1029  /**
  1030   * Search criteria for Keys
  1031   *
  1032   * @author Spencer Witt
  1033   */
  1034  type KeySearchCriteria struct {
  1035  	BaseSearchCriteria
  1036  	Algorithm KeyAlgorithm `json:"algorithm,omitempty"`
  1037  	Name      string       `json:"name,omitempty"`
  1038  	Type      KeyType      `json:"type,omitempty"`
  1039  }
  1040  
  1041  /**
  1042   * @author Brian Pontarelli
  1043   */
  1044  type ReactorFeatureStatus string
  1045  
  1046  func (e ReactorFeatureStatus) String() string {
  1047  	return string(e)
  1048  }
  1049  
  1050  const (
  1051  	ReactorFeatureStatus_ACTIVE       ReactorFeatureStatus = "ACTIVE"
  1052  	ReactorFeatureStatus_DISCONNECTED ReactorFeatureStatus = "DISCONNECTED"
  1053  	ReactorFeatureStatus_PENDING      ReactorFeatureStatus = "PENDING"
  1054  	ReactorFeatureStatus_DISABLED     ReactorFeatureStatus = "DISABLED"
  1055  	ReactorFeatureStatus_UNKNOWN      ReactorFeatureStatus = "UNKNOWN"
  1056  )
  1057  
  1058  /**
  1059   * @author Daniel DeGroff
  1060   */
  1061  type RefreshRequest struct {
  1062  	BaseEventRequest
  1063  	RefreshToken string `json:"refreshToken,omitempty"`
  1064  	Token        string `json:"token,omitempty"`
  1065  }
  1066  
  1067  /**
  1068   * Models an event where a user is being created with an "in-use" login Id (email or username).
  1069   *
  1070   * @author Daniel DeGroff
  1071   */
  1072  type UserLoginIdDuplicateOnCreateEvent struct {
  1073  	BaseEvent
  1074  	DuplicateEmail    string `json:"duplicateEmail,omitempty"`
  1075  	DuplicateUsername string `json:"duplicateUsername,omitempty"`
  1076  	Existing          User   `json:"existing,omitempty"`
  1077  	User              User   `json:"user,omitempty"`
  1078  }
  1079  
  1080  /**
  1081   * Login API request object.
  1082   *
  1083   * @author Seth Musselman
  1084   */
  1085  type LoginRequest struct {
  1086  	BaseLoginRequest
  1087  	LoginId          string `json:"loginId,omitempty"`
  1088  	OneTimePassword  string `json:"oneTimePassword,omitempty"`
  1089  	Password         string `json:"password,omitempty"`
  1090  	TwoFactorTrustId string `json:"twoFactorTrustId,omitempty"`
  1091  }
  1092  
  1093  /**
  1094   * Response for the user login report.
  1095   *
  1096   * @author Seth Musselman
  1097   */
  1098  type RecentLoginResponse struct {
  1099  	BaseHTTPResponse
  1100  	Logins []DisplayableRawLogin `json:"logins,omitempty"`
  1101  }
  1102  
  1103  func (b *RecentLoginResponse) SetStatus(status int) {
  1104  	b.StatusCode = status
  1105  }
  1106  
  1107  /**
  1108   * API response for User consent.
  1109   *
  1110   * @author Daniel DeGroff
  1111   */
  1112  type UserConsentRequest struct {
  1113  	UserConsent UserConsent `json:"userConsent,omitempty"`
  1114  }
  1115  
  1116  /**
  1117   * API request for sending out family requests to parent's.
  1118   *
  1119   * @author Brian Pontarelli
  1120   */
  1121  type FamilyEmailRequest struct {
  1122  	ParentEmail string `json:"parentEmail,omitempty"`
  1123  }
  1124  
  1125  /**
  1126   * Search request for entities
  1127   *
  1128   * @author Brett Guy
  1129   */
  1130  type EntitySearchRequest struct {
  1131  	Search EntitySearchCriteria `json:"search,omitempty"`
  1132  }
  1133  
  1134  /**
  1135   * Interface describing the need for CORS configuration.
  1136   *
  1137   * @author Daniel DeGroff
  1138   */
  1139  type RequiresCORSConfiguration struct {
  1140  }
  1141  
  1142  /**
  1143   * Audit log response.
  1144   *
  1145   * @author Brian Pontarelli
  1146   */
  1147  type AuditLogResponse struct {
  1148  	BaseHTTPResponse
  1149  	AuditLog AuditLog `json:"auditLog,omitempty"`
  1150  }
  1151  
  1152  func (b *AuditLogResponse) SetStatus(status int) {
  1153  	b.StatusCode = status
  1154  }
  1155  
  1156  /**
  1157   * @author Brett Pontarelli
  1158   */
  1159  type SteamApplicationConfiguration struct {
  1160  	BaseIdentityProviderApplicationConfiguration
  1161  	ApiMode    SteamAPIMode `json:"apiMode,omitempty"`
  1162  	ButtonText string       `json:"buttonText,omitempty"`
  1163  	ClientId   string       `json:"client_id,omitempty"`
  1164  	Scope      string       `json:"scope,omitempty"`
  1165  	WebAPIKey  string       `json:"webAPIKey,omitempty"`
  1166  }
  1167  
  1168  /**
  1169   * @author Mikey Sleevi
  1170   */
  1171  type TenantMultiFactorConfiguration struct {
  1172  	Authenticator MultiFactorAuthenticatorMethod `json:"authenticator,omitempty"`
  1173  	Email         MultiFactorEmailMethod         `json:"email,omitempty"`
  1174  	LoginPolicy   MultiFactorLoginPolicy         `json:"loginPolicy,omitempty"`
  1175  	Sms           MultiFactorSMSMethod           `json:"sms,omitempty"`
  1176  }
  1177  
  1178  /**
  1179   * Xbox gaming login provider.
  1180   *
  1181   * @author Brett Pontarelli
  1182   */
  1183  type XboxIdentityProvider struct {
  1184  	BaseIdentityProvider
  1185  	ButtonText   string `json:"buttonText,omitempty"`
  1186  	ClientId     string `json:"client_id,omitempty"`
  1187  	ClientSecret string `json:"client_secret,omitempty"`
  1188  	Scope        string `json:"scope,omitempty"`
  1189  }
  1190  
  1191  /**
  1192   * @author Brett Guy
  1193   */
  1194  type ProofKeyForCodeExchangePolicy string
  1195  
  1196  func (e ProofKeyForCodeExchangePolicy) String() string {
  1197  	return string(e)
  1198  }
  1199  
  1200  const (
  1201  	ProofKeyForCodeExchangePolicy_Required                                 ProofKeyForCodeExchangePolicy = "Required"
  1202  	ProofKeyForCodeExchangePolicy_NotRequired                              ProofKeyForCodeExchangePolicy = "NotRequired"
  1203  	ProofKeyForCodeExchangePolicy_NotRequiredWhenUsingClientAuthentication ProofKeyForCodeExchangePolicy = "NotRequiredWhenUsingClientAuthentication"
  1204  )
  1205  
  1206  /**
  1207   * Audit log response.
  1208   *
  1209   * @author Brian Pontarelli
  1210   */
  1211  type AuditLogSearchResponse struct {
  1212  	BaseHTTPResponse
  1213  	AuditLogs []AuditLog `json:"auditLogs,omitempty"`
  1214  	Total     int64      `json:"total,omitempty"`
  1215  }
  1216  
  1217  func (b *AuditLogSearchResponse) SetStatus(status int) {
  1218  	b.StatusCode = status
  1219  }
  1220  
  1221  /**
  1222   * <ul>
  1223   * <li>Bearer Token type as defined by <a href="https://tools.ietf.org/html/rfc6750">RFC 6750</a>.</li>
  1224   * <li>MAC Token type as referenced by <a href="https://tools.ietf.org/html/rfc6749">RFC 6749</a> and
  1225   * <a href="https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05">
  1226   * Draft RFC on OAuth 2.0 Message Authentication Code (MAC) Tokens</a>
  1227   * </li>
  1228   * </ul>
  1229   *
  1230   * @author Daniel DeGroff
  1231   */
  1232  type TokenType string
  1233  
  1234  func (e TokenType) String() string {
  1235  	return string(e)
  1236  }
  1237  
  1238  const (
  1239  	TokenType_Bearer TokenType = "Bearer"
  1240  	TokenType_MAC    TokenType = "MAC"
  1241  )
  1242  
  1243  /**
  1244   * Search response for Groups
  1245   *
  1246   * @author Daniel DeGroff
  1247   */
  1248  type GroupSearchResponse struct {
  1249  	BaseHTTPResponse
  1250  	Groups []Group `json:"groups,omitempty"`
  1251  	Total  int64   `json:"total,omitempty"`
  1252  }
  1253  
  1254  func (b *GroupSearchResponse) SetStatus(status int) {
  1255  	b.StatusCode = status
  1256  }
  1257  
  1258  /**
  1259   * Configuration for signing webhooks.
  1260   *
  1261   * @author Brent Halsey
  1262   */
  1263  type WebhookSignatureConfiguration struct {
  1264  	Enableable
  1265  	SigningKeyId string `json:"signingKeyId,omitempty"`
  1266  }
  1267  
  1268  type XMLSignatureLocation string
  1269  
  1270  func (e XMLSignatureLocation) String() string {
  1271  	return string(e)
  1272  }
  1273  
  1274  const (
  1275  	XMLSignatureLocation_Assertion XMLSignatureLocation = "Assertion"
  1276  	XMLSignatureLocation_Response  XMLSignatureLocation = "Response"
  1277  )
  1278  
  1279  /**
  1280   * Search criteria for user comments.
  1281   *
  1282   * @author Spencer Witt
  1283   */
  1284  type UserCommentSearchCriteria struct {
  1285  	BaseSearchCriteria
  1286  	Comment     string `json:"comment,omitempty"`
  1287  	CommenterId string `json:"commenterId,omitempty"`
  1288  	TenantId    string `json:"tenantId,omitempty"`
  1289  	UserId      string `json:"userId,omitempty"`
  1290  }
  1291  
  1292  /**
  1293   * @author Daniel DeGroff
  1294   */
  1295  type LinkedInIdentityProvider struct {
  1296  	BaseIdentityProvider
  1297  	ButtonText   string `json:"buttonText,omitempty"`
  1298  	ClientId     string `json:"client_id,omitempty"`
  1299  	ClientSecret string `json:"client_secret,omitempty"`
  1300  	Scope        string `json:"scope,omitempty"`
  1301  }
  1302  
  1303  /**
  1304   * A server where events are sent. This includes user action events and any other events sent by FusionAuth.
  1305   *
  1306   * @author Brian Pontarelli
  1307   */
  1308  type Webhook struct {
  1309  	ConnectTimeout             int                           `json:"connectTimeout,omitempty"`
  1310  	Data                       map[string]interface{}        `json:"data,omitempty"`
  1311  	Description                string                        `json:"description,omitempty"`
  1312  	EventsEnabled              map[EventType]bool            `json:"eventsEnabled,omitempty"`
  1313  	Global                     bool                          `json:"global"`
  1314  	Headers                    map[string]string             `json:"headers,omitempty"`
  1315  	HttpAuthenticationPassword string                        `json:"httpAuthenticationPassword,omitempty"`
  1316  	HttpAuthenticationUsername string                        `json:"httpAuthenticationUsername,omitempty"`
  1317  	Id                         string                        `json:"id,omitempty"`
  1318  	InsertInstant              int64                         `json:"insertInstant,omitempty"`
  1319  	LastUpdateInstant          int64                         `json:"lastUpdateInstant,omitempty"`
  1320  	ReadTimeout                int                           `json:"readTimeout,omitempty"`
  1321  	SignatureConfiguration     WebhookSignatureConfiguration `json:"signatureConfiguration,omitempty"`
  1322  	SslCertificate             string                        `json:"sslCertificate,omitempty"`
  1323  	SslCertificateKeyId        string                        `json:"sslCertificateKeyId,omitempty"`
  1324  	TenantIds                  []string                      `json:"tenantIds,omitempty"`
  1325  	Url                        string                        `json:"url,omitempty"`
  1326  }
  1327  
  1328  /**
  1329   * @author Daniel DeGroff
  1330   */
  1331  type TwoFactorLoginRequest struct {
  1332  	BaseLoginRequest
  1333  	Code          string `json:"code,omitempty"`
  1334  	TrustComputer bool   `json:"trustComputer"`
  1335  	TwoFactorId   string `json:"twoFactorId,omitempty"`
  1336  	UserId        string `json:"userId,omitempty"`
  1337  }
  1338  
  1339  /**
  1340   * Entity grant API request object.
  1341   *
  1342   * @author Brian Pontarelli
  1343   */
  1344  type EntityGrantRequest struct {
  1345  	Grant EntityGrant `json:"grant,omitempty"`
  1346  }
  1347  
  1348  /**
  1349   * @author Daniel DeGroff
  1350   */
  1351  type IdentityProviderLinkResponse struct {
  1352  	BaseHTTPResponse
  1353  	IdentityProviderLink  IdentityProviderLink   `json:"identityProviderLink,omitempty"`
  1354  	IdentityProviderLinks []IdentityProviderLink `json:"identityProviderLinks,omitempty"`
  1355  }
  1356  
  1357  func (b *IdentityProviderLinkResponse) SetStatus(status int) {
  1358  	b.StatusCode = status
  1359  }
  1360  
  1361  /**
  1362   * The handling policy for scopes provided by FusionAuth
  1363   *
  1364   * @author Spencer Witt
  1365   */
  1366  type ProvidedScopePolicy struct {
  1367  	Address Requirable `json:"address,omitempty"`
  1368  	Email   Requirable `json:"email,omitempty"`
  1369  	Phone   Requirable `json:"phone,omitempty"`
  1370  	Profile Requirable `json:"profile,omitempty"`
  1371  }
  1372  
  1373  type HistoryItem struct {
  1374  	ActionerUserId string `json:"actionerUserId,omitempty"`
  1375  	Comment        string `json:"comment,omitempty"`
  1376  	CreateInstant  int64  `json:"createInstant,omitempty"`
  1377  	Expiry         int64  `json:"expiry,omitempty"`
  1378  }
  1379  
  1380  /**
  1381   * @author Daniel DeGroff
  1382   */
  1383  type BaseExportRequest struct {
  1384  	DateTimeSecondsFormat string `json:"dateTimeSecondsFormat,omitempty"`
  1385  	ZoneId                string `json:"zoneId,omitempty"`
  1386  }
  1387  
  1388  /**
  1389   * Google social login provider parameters.
  1390   *
  1391   * @author Daniel DeGroff
  1392   */
  1393  type GoogleIdentityProviderProperties struct {
  1394  	Api    string `json:"api,omitempty"`
  1395  	Button string `json:"button,omitempty"`
  1396  }
  1397  
  1398  /**
  1399   * @author Daniel DeGroff
  1400   */
  1401  type OAuthError struct {
  1402  	ChangePasswordId string            `json:"change_password_id,omitempty"`
  1403  	Error            OAuthErrorType    `json:"error,omitempty"`
  1404  	ErrorDescription string            `json:"error_description,omitempty"`
  1405  	ErrorReason      OAuthErrorReason  `json:"error_reason,omitempty"`
  1406  	ErrorUri         string            `json:"error_uri,omitempty"`
  1407  	TwoFactorId      string            `json:"two_factor_id,omitempty"`
  1408  	TwoFactorMethods []TwoFactorMethod `json:"two_factor_methods,omitempty"`
  1409  }
  1410  
  1411  /**
  1412   * @author Daniel DeGroff
  1413   */
  1414  type TwoFactorRecoveryCodeResponse struct {
  1415  	BaseHTTPResponse
  1416  	RecoveryCodes []string `json:"recoveryCodes,omitempty"`
  1417  }
  1418  
  1419  func (b *TwoFactorRecoveryCodeResponse) SetStatus(status int) {
  1420  	b.StatusCode = status
  1421  }
  1422  
  1423  /**
  1424   * Describes the authenticator attachment modality preference for a WebAuthn workflow. See {@link AuthenticatorAttachment}
  1425   *
  1426   * @author Spencer Witt
  1427   */
  1428  type AuthenticatorAttachmentPreference string
  1429  
  1430  func (e AuthenticatorAttachmentPreference) String() string {
  1431  	return string(e)
  1432  }
  1433  
  1434  const (
  1435  	AuthenticatorAttachmentPreference_Any           AuthenticatorAttachmentPreference = "any"
  1436  	AuthenticatorAttachmentPreference_Platform      AuthenticatorAttachmentPreference = "platform"
  1437  	AuthenticatorAttachmentPreference_CrossPlatform AuthenticatorAttachmentPreference = "crossPlatform"
  1438  )
  1439  
  1440  /**
  1441   * Models the Group Update Complete Event.
  1442   *
  1443   * @author Daniel DeGroff
  1444   */
  1445  type GroupUpdateCompleteEvent struct {
  1446  	BaseEvent
  1447  	Group    Group `json:"group,omitempty"`
  1448  	Original Group `json:"original,omitempty"`
  1449  }
  1450  
  1451  type ConnectorLambdaConfiguration struct {
  1452  	ReconcileId string `json:"reconcileId,omitempty"`
  1453  }
  1454  
  1455  /**
  1456   * Search criteria for Lambdas
  1457   *
  1458   * @author Mark Manes
  1459   */
  1460  type LambdaSearchCriteria struct {
  1461  	BaseSearchCriteria
  1462  	Body string     `json:"body,omitempty"`
  1463  	Name string     `json:"name,omitempty"`
  1464  	Type LambdaType `json:"type,omitempty"`
  1465  }
  1466  
  1467  /**
  1468   * @author Brian Pontarelli
  1469   */
  1470  type SystemConfiguration struct {
  1471  	AuditLogConfiguration     AuditLogConfiguration           `json:"auditLogConfiguration,omitempty"`
  1472  	CorsConfiguration         CORSConfiguration               `json:"corsConfiguration,omitempty"`
  1473  	Data                      map[string]interface{}          `json:"data,omitempty"`
  1474  	EventLogConfiguration     EventLogConfiguration           `json:"eventLogConfiguration,omitempty"`
  1475  	InsertInstant             int64                           `json:"insertInstant,omitempty"`
  1476  	LastUpdateInstant         int64                           `json:"lastUpdateInstant,omitempty"`
  1477  	LoginRecordConfiguration  LoginRecordConfiguration        `json:"loginRecordConfiguration,omitempty"`
  1478  	ReportTimezone            string                          `json:"reportTimezone,omitempty"`
  1479  	TrustedProxyConfiguration SystemTrustedProxyConfiguration `json:"trustedProxyConfiguration,omitempty"`
  1480  	UiConfiguration           UIConfiguration                 `json:"uiConfiguration,omitempty"`
  1481  }
  1482  
  1483  /**
  1484   * @author Brett Guy
  1485   */
  1486  type IPAccessControlEntryAction string
  1487  
  1488  func (e IPAccessControlEntryAction) String() string {
  1489  	return string(e)
  1490  }
  1491  
  1492  const (
  1493  	IPAccessControlEntryAction_Allow IPAccessControlEntryAction = "Allow"
  1494  	IPAccessControlEntryAction_Block IPAccessControlEntryAction = "Block"
  1495  )
  1496  
  1497  /**
  1498   * Webhook API request object.
  1499   *
  1500   * @author Brian Pontarelli
  1501   */
  1502  type WebhookRequest struct {
  1503  	Webhook Webhook `json:"webhook,omitempty"`
  1504  }
  1505  
  1506  /**
  1507   * Form field response.
  1508   *
  1509   * @author Brett Guy
  1510   */
  1511  type FormFieldResponse struct {
  1512  	BaseHTTPResponse
  1513  	Field  FormField   `json:"field,omitempty"`
  1514  	Fields []FormField `json:"fields,omitempty"`
  1515  }
  1516  
  1517  func (b *FormFieldResponse) SetStatus(status int) {
  1518  	b.StatusCode = status
  1519  }
  1520  
  1521  /**
  1522   * @author Mikey Sleevi
  1523   */
  1524  type MessageType string
  1525  
  1526  func (e MessageType) String() string {
  1527  	return string(e)
  1528  }
  1529  
  1530  const (
  1531  	MessageType_SMS MessageType = "SMS"
  1532  )
  1533  
  1534  // Do not require a setter for 'type', it is defined by the concrete class and is not mutable
  1535  type BaseConnectorConfiguration struct {
  1536  	Data              map[string]interface{} `json:"data,omitempty"`
  1537  	Debug             bool                   `json:"debug"`
  1538  	Id                string                 `json:"id,omitempty"`
  1539  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  1540  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  1541  	Name              string                 `json:"name,omitempty"`
  1542  	Type              ConnectorType          `json:"type,omitempty"`
  1543  }
  1544  
  1545  /**
  1546   * Configuration for the behavior of failed login attempts. This helps us protect against brute force password attacks.
  1547   *
  1548   * @author Daniel DeGroff
  1549   */
  1550  type FailedAuthenticationConfiguration struct {
  1551  	ActionCancelPolicy  FailedAuthenticationActionCancelPolicy `json:"actionCancelPolicy,omitempty"`
  1552  	ActionDuration      int64                                  `json:"actionDuration,omitempty"`
  1553  	ActionDurationUnit  ExpiryUnit                             `json:"actionDurationUnit,omitempty"`
  1554  	EmailUser           bool                                   `json:"emailUser"`
  1555  	ResetCountInSeconds int                                    `json:"resetCountInSeconds,omitempty"`
  1556  	TooManyAttempts     int                                    `json:"tooManyAttempts,omitempty"`
  1557  	UserActionId        string                                 `json:"userActionId,omitempty"`
  1558  }
  1559  
  1560  /**
  1561   * Search criteria for Tenants
  1562   *
  1563   * @author Mark Manes
  1564   */
  1565  type TenantSearchCriteria struct {
  1566  	BaseSearchCriteria
  1567  	Name string `json:"name,omitempty"`
  1568  }
  1569  
  1570  /**
  1571   * @author Rob Davis
  1572   */
  1573  type TenantSCIMServerConfiguration struct {
  1574  	Enableable
  1575  	ClientEntityTypeId string                 `json:"clientEntityTypeId,omitempty"`
  1576  	Schemas            map[string]interface{} `json:"schemas,omitempty"`
  1577  	ServerEntityTypeId string                 `json:"serverEntityTypeId,omitempty"`
  1578  }
  1579  
  1580  /**
  1581   * An email address.
  1582   *
  1583   * @author Brian Pontarelli
  1584   */
  1585  type EmailAddress struct {
  1586  	Address string `json:"address,omitempty"`
  1587  	Display string `json:"display,omitempty"`
  1588  }
  1589  
  1590  /**
  1591   * Status for content like usernames, profile attributes, etc.
  1592   *
  1593   * @author Brian Pontarelli
  1594   */
  1595  type ContentStatus string
  1596  
  1597  func (e ContentStatus) String() string {
  1598  	return string(e)
  1599  }
  1600  
  1601  const (
  1602  	ContentStatus_ACTIVE   ContentStatus = "ACTIVE"
  1603  	ContentStatus_PENDING  ContentStatus = "PENDING"
  1604  	ContentStatus_REJECTED ContentStatus = "REJECTED"
  1605  )
  1606  
  1607  /**
  1608   * @author Brett Guy
  1609   */
  1610  type GenericMessengerConfiguration struct {
  1611  	BaseMessengerConfiguration
  1612  	ConnectTimeout             int               `json:"connectTimeout,omitempty"`
  1613  	Headers                    map[string]string `json:"headers,omitempty"`
  1614  	HttpAuthenticationPassword string            `json:"httpAuthenticationPassword,omitempty"`
  1615  	HttpAuthenticationUsername string            `json:"httpAuthenticationUsername,omitempty"`
  1616  	ReadTimeout                int               `json:"readTimeout,omitempty"`
  1617  	SslCertificate             string            `json:"sslCertificate,omitempty"`
  1618  	Url                        string            `json:"url,omitempty"`
  1619  }
  1620  
  1621  /**
  1622   * @author Daniel DeGroff
  1623   */
  1624  type FormControl string
  1625  
  1626  func (e FormControl) String() string {
  1627  	return string(e)
  1628  }
  1629  
  1630  const (
  1631  	FormControl_Checkbox FormControl = "checkbox"
  1632  	FormControl_Number   FormControl = "number"
  1633  	FormControl_Password FormControl = "password"
  1634  	FormControl_Radio    FormControl = "radio"
  1635  	FormControl_Select   FormControl = "select"
  1636  	FormControl_Textarea FormControl = "textarea"
  1637  	FormControl_Text     FormControl = "text"
  1638  )
  1639  
  1640  type BreachMatchMode string
  1641  
  1642  func (e BreachMatchMode) String() string {
  1643  	return string(e)
  1644  }
  1645  
  1646  const (
  1647  	BreachMatchMode_Low    BreachMatchMode = "Low"
  1648  	BreachMatchMode_Medium BreachMatchMode = "Medium"
  1649  	BreachMatchMode_High   BreachMatchMode = "High"
  1650  )
  1651  
  1652  /**
  1653   * Search criteria for Group Members
  1654   *
  1655   * @author Daniel DeGroff
  1656   */
  1657  type GroupMemberSearchCriteria struct {
  1658  	BaseSearchCriteria
  1659  	GroupId  string `json:"groupId,omitempty"`
  1660  	TenantId string `json:"tenantId,omitempty"`
  1661  	UserId   string `json:"userId,omitempty"`
  1662  }
  1663  
  1664  /**
  1665   * COSE key type
  1666   *
  1667   * @author Spencer Witt
  1668   */
  1669  type CoseKeyType string
  1670  
  1671  func (e CoseKeyType) String() string {
  1672  	return string(e)
  1673  }
  1674  
  1675  const (
  1676  	CoseKeyType_Reserved  CoseKeyType = "Reserved"
  1677  	CoseKeyType_OKP       CoseKeyType = "OKP"
  1678  	CoseKeyType_EC2       CoseKeyType = "EC2"
  1679  	CoseKeyType_RSA       CoseKeyType = "RSA"
  1680  	CoseKeyType_Symmetric CoseKeyType = "Symmetric"
  1681  )
  1682  
  1683  /**
  1684   * User API request object.
  1685   *
  1686   * @author Brian Pontarelli
  1687   */
  1688  type UserRequest struct {
  1689  	BaseEventRequest
  1690  	ApplicationId        string `json:"applicationId,omitempty"`
  1691  	CurrentPassword      string `json:"currentPassword,omitempty"`
  1692  	DisableDomainBlock   bool   `json:"disableDomainBlock"`
  1693  	SendSetPasswordEmail bool   `json:"sendSetPasswordEmail"`
  1694  	SkipVerification     bool   `json:"skipVerification"`
  1695  	User                 User   `json:"user,omitempty"`
  1696  }
  1697  
  1698  /**
  1699   * User API bulk response object.
  1700   *
  1701   * @author Trevor Smith
  1702   */
  1703  type UserDeleteResponse struct {
  1704  	BaseHTTPResponse
  1705  	DryRun     bool     `json:"dryRun"`
  1706  	HardDelete bool     `json:"hardDelete"`
  1707  	Total      int      `json:"total,omitempty"`
  1708  	UserIds    []string `json:"userIds,omitempty"`
  1709  }
  1710  
  1711  func (b *UserDeleteResponse) SetStatus(status int) {
  1712  	b.StatusCode = status
  1713  }
  1714  
  1715  /**
  1716   * Change password request object.
  1717   *
  1718   * @author Brian Pontarelli
  1719   */
  1720  type ChangePasswordRequest struct {
  1721  	BaseEventRequest
  1722  	ApplicationId    string `json:"applicationId,omitempty"`
  1723  	ChangePasswordId string `json:"changePasswordId,omitempty"`
  1724  	CurrentPassword  string `json:"currentPassword,omitempty"`
  1725  	LoginId          string `json:"loginId,omitempty"`
  1726  	Password         string `json:"password,omitempty"`
  1727  	RefreshToken     string `json:"refreshToken,omitempty"`
  1728  	TrustChallenge   string `json:"trustChallenge,omitempty"`
  1729  	TrustToken       string `json:"trustToken,omitempty"`
  1730  }
  1731  
  1732  type SAMLv2Configuration struct {
  1733  	Enableable
  1734  	AssertionEncryptionConfiguration SAMLv2AssertionEncryptionConfiguration `json:"assertionEncryptionConfiguration,omitempty"`
  1735  	Audience                         string                                 `json:"audience,omitempty"`
  1736  	AuthorizedRedirectURLs           []string                               `json:"authorizedRedirectURLs,omitempty"`
  1737  	CallbackURL                      string                                 `json:"callbackURL,omitempty"`
  1738  	Debug                            bool                                   `json:"debug"`
  1739  	DefaultVerificationKeyId         string                                 `json:"defaultVerificationKeyId,omitempty"`
  1740  	InitiatedLogin                   SAMLv2IdPInitiatedLoginConfiguration   `json:"initiatedLogin,omitempty"`
  1741  	Issuer                           string                                 `json:"issuer,omitempty"`
  1742  	KeyId                            string                                 `json:"keyId,omitempty"`
  1743  	LoginHintConfiguration           LoginHintConfiguration                 `json:"loginHintConfiguration,omitempty"`
  1744  	Logout                           SAMLv2Logout                           `json:"logout,omitempty"`
  1745  	LogoutURL                        string                                 `json:"logoutURL,omitempty"`
  1746  	RequireSignedRequests            bool                                   `json:"requireSignedRequests"`
  1747  	XmlSignatureC14nMethod           CanonicalizationMethod                 `json:"xmlSignatureC14nMethod,omitempty"`
  1748  	XmlSignatureLocation             XMLSignatureLocation                   `json:"xmlSignatureLocation,omitempty"`
  1749  }
  1750  
  1751  /**
  1752   * CleanSpeak configuration at the system and application level.
  1753   *
  1754   * @author Brian Pontarelli
  1755   */
  1756  type CleanSpeakConfiguration struct {
  1757  	Enableable
  1758  	ApiKey             string             `json:"apiKey,omitempty"`
  1759  	ApplicationIds     []string           `json:"applicationIds,omitempty"`
  1760  	Url                string             `json:"url,omitempty"`
  1761  	UsernameModeration UsernameModeration `json:"usernameModeration,omitempty"`
  1762  }
  1763  
  1764  /**
  1765   * User Action API response object.
  1766   *
  1767   * @author Brian Pontarelli
  1768   */
  1769  type UserActionResponse struct {
  1770  	BaseHTTPResponse
  1771  	UserAction  UserAction   `json:"userAction,omitempty"`
  1772  	UserActions []UserAction `json:"userActions,omitempty"`
  1773  }
  1774  
  1775  func (b *UserActionResponse) SetStatus(status int) {
  1776  	b.StatusCode = status
  1777  }
  1778  
  1779  /**
  1780   * @author Lyle Schemmerling
  1781   */
  1782  type SAMLv2DestinationAssertionPolicy string
  1783  
  1784  func (e SAMLv2DestinationAssertionPolicy) String() string {
  1785  	return string(e)
  1786  }
  1787  
  1788  const (
  1789  	SAMLv2DestinationAssertionPolicy_Enabled         SAMLv2DestinationAssertionPolicy = "Enabled"
  1790  	SAMLv2DestinationAssertionPolicy_Disabled        SAMLv2DestinationAssertionPolicy = "Disabled"
  1791  	SAMLv2DestinationAssertionPolicy_AllowAlternates SAMLv2DestinationAssertionPolicy = "AllowAlternates"
  1792  )
  1793  
  1794  /**
  1795   * API response for starting a WebAuthn authentication ceremony
  1796   *
  1797   * @author Spencer Witt
  1798   */
  1799  type WebAuthnStartResponse struct {
  1800  	BaseHTTPResponse
  1801  	Options PublicKeyCredentialRequestOptions `json:"options,omitempty"`
  1802  }
  1803  
  1804  func (b *WebAuthnStartResponse) SetStatus(status int) {
  1805  	b.StatusCode = status
  1806  }
  1807  
  1808  /**
  1809   * Theme API response object.
  1810   *
  1811   * @author Trevor Smith
  1812   */
  1813  type ThemeResponse struct {
  1814  	BaseHTTPResponse
  1815  	Theme  Theme   `json:"theme,omitempty"`
  1816  	Themes []Theme `json:"themes,omitempty"`
  1817  }
  1818  
  1819  func (b *ThemeResponse) SetStatus(status int) {
  1820  	b.StatusCode = status
  1821  }
  1822  
  1823  /**
  1824   * Defines valid credential types. This is an extension point in the WebAuthn spec. The only defined value at this time is "public-key"
  1825   *
  1826   * @author Spencer Witt
  1827   */
  1828  type PublicKeyCredentialType string
  1829  
  1830  func (e PublicKeyCredentialType) String() string {
  1831  	return string(e)
  1832  }
  1833  
  1834  const (
  1835  	PublicKeyCredentialType_PublicKey PublicKeyCredentialType = "publicKey"
  1836  )
  1837  
  1838  /**
  1839   * @author Daniel DeGroff
  1840   */
  1841  type OAuthResponse struct {
  1842  	BaseHTTPResponse
  1843  }
  1844  
  1845  func (b *OAuthResponse) SetStatus(status int) {
  1846  	b.StatusCode = status
  1847  }
  1848  
  1849  /**
  1850   * @author Daniel DeGroff
  1851   */
  1852  type FormFieldAdminPolicy string
  1853  
  1854  func (e FormFieldAdminPolicy) String() string {
  1855  	return string(e)
  1856  }
  1857  
  1858  const (
  1859  	FormFieldAdminPolicy_Edit FormFieldAdminPolicy = "Edit"
  1860  	FormFieldAdminPolicy_View FormFieldAdminPolicy = "View"
  1861  )
  1862  
  1863  type EmailPlus struct {
  1864  	Enableable
  1865  	EmailTemplateId               string `json:"emailTemplateId,omitempty"`
  1866  	MaximumTimeToSendEmailInHours int    `json:"maximumTimeToSendEmailInHours,omitempty"`
  1867  	MinimumTimeToSendEmailInHours int    `json:"minimumTimeToSendEmailInHours,omitempty"`
  1868  }
  1869  
  1870  /**
  1871   * API response for managing families and members.
  1872   *
  1873   * @author Brian Pontarelli
  1874   */
  1875  type FamilyResponse struct {
  1876  	BaseHTTPResponse
  1877  	Families []Family `json:"families,omitempty"`
  1878  	Family   Family   `json:"family,omitempty"`
  1879  }
  1880  
  1881  func (b *FamilyResponse) SetStatus(status int) {
  1882  	b.StatusCode = status
  1883  }
  1884  
  1885  /**
  1886   * Models a specific entity type permission. This permission can be granted to users or other entities.
  1887   *
  1888   * @author Brian Pontarelli
  1889   */
  1890  type EntityTypePermission struct {
  1891  	Data              map[string]interface{} `json:"data,omitempty"`
  1892  	Description       string                 `json:"description,omitempty"`
  1893  	Id                string                 `json:"id,omitempty"`
  1894  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  1895  	IsDefault         bool                   `json:"isDefault"`
  1896  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  1897  	Name              string                 `json:"name,omitempty"`
  1898  }
  1899  
  1900  /**
  1901   * @author Daniel DeGroff
  1902   */
  1903  type RateLimitedRequestConfiguration struct {
  1904  	Enableable
  1905  	Limit               int `json:"limit,omitempty"`
  1906  	TimePeriodInSeconds int `json:"timePeriodInSeconds,omitempty"`
  1907  }
  1908  
  1909  /**
  1910   * @author Daniel DeGroff
  1911   */
  1912  type ReactorStatus struct {
  1913  	AdvancedIdentityProviders                 ReactorFeatureStatus `json:"advancedIdentityProviders,omitempty"`
  1914  	AdvancedLambdas                           ReactorFeatureStatus `json:"advancedLambdas,omitempty"`
  1915  	AdvancedMultiFactorAuthentication         ReactorFeatureStatus `json:"advancedMultiFactorAuthentication,omitempty"`
  1916  	AdvancedOAuthScopes                       ReactorFeatureStatus `json:"advancedOAuthScopes,omitempty"`
  1917  	AdvancedOAuthScopesCustomScopes           ReactorFeatureStatus `json:"advancedOAuthScopesCustomScopes,omitempty"`
  1918  	AdvancedOAuthScopesThirdPartyApplications ReactorFeatureStatus `json:"advancedOAuthScopesThirdPartyApplications,omitempty"`
  1919  	AdvancedRegistration                      ReactorFeatureStatus `json:"advancedRegistration,omitempty"`
  1920  	ApplicationMultiFactorAuthentication      ReactorFeatureStatus `json:"applicationMultiFactorAuthentication,omitempty"`
  1921  	ApplicationThemes                         ReactorFeatureStatus `json:"applicationThemes,omitempty"`
  1922  	BreachedPasswordDetection                 ReactorFeatureStatus `json:"breachedPasswordDetection,omitempty"`
  1923  	Connectors                                ReactorFeatureStatus `json:"connectors,omitempty"`
  1924  	EntityManagement                          ReactorFeatureStatus `json:"entityManagement,omitempty"`
  1925  	Expiration                                string               `json:"expiration,omitempty"`
  1926  	LicenseAttributes                         map[string]string    `json:"licenseAttributes,omitempty"`
  1927  	Licensed                                  bool                 `json:"licensed"`
  1928  	ScimServer                                ReactorFeatureStatus `json:"scimServer,omitempty"`
  1929  	ThreatDetection                           ReactorFeatureStatus `json:"threatDetection,omitempty"`
  1930  	WebAuthn                                  ReactorFeatureStatus `json:"webAuthn,omitempty"`
  1931  	WebAuthnPlatformAuthenticators            ReactorFeatureStatus `json:"webAuthnPlatformAuthenticators,omitempty"`
  1932  	WebAuthnRoamingAuthenticators             ReactorFeatureStatus `json:"webAuthnRoamingAuthenticators,omitempty"`
  1933  }
  1934  
  1935  /**
  1936   * Models a single family member.
  1937   *
  1938   * @author Brian Pontarelli
  1939   */
  1940  type FamilyMember struct {
  1941  	Data              map[string]interface{} `json:"data,omitempty"`
  1942  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  1943  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  1944  	Owner             bool                   `json:"owner"`
  1945  	Role              FamilyRole             `json:"role,omitempty"`
  1946  	UserId            string                 `json:"userId,omitempty"`
  1947  }
  1948  
  1949  type CertificateInformation struct {
  1950  	Issuer            string `json:"issuer,omitempty"`
  1951  	Md5Fingerprint    string `json:"md5Fingerprint,omitempty"`
  1952  	SerialNumber      string `json:"serialNumber,omitempty"`
  1953  	Sha1Fingerprint   string `json:"sha1Fingerprint,omitempty"`
  1954  	Sha1Thumbprint    string `json:"sha1Thumbprint,omitempty"`
  1955  	Sha256Fingerprint string `json:"sha256Fingerprint,omitempty"`
  1956  	Sha256Thumbprint  string `json:"sha256Thumbprint,omitempty"`
  1957  	Subject           string `json:"subject,omitempty"`
  1958  	ValidFrom         int64  `json:"validFrom,omitempty"`
  1959  	ValidTo           int64  `json:"validTo,omitempty"`
  1960  }
  1961  
  1962  /**
  1963   * @author Daniel DeGroff
  1964   */
  1965  type PasswordlessStartResponse struct {
  1966  	BaseHTTPResponse
  1967  	Code string `json:"code,omitempty"`
  1968  }
  1969  
  1970  func (b *PasswordlessStartResponse) SetStatus(status int) {
  1971  	b.StatusCode = status
  1972  }
  1973  
  1974  /**
  1975   * Response for the daily active user report.
  1976   *
  1977   * @author Brian Pontarelli
  1978   */
  1979  type DailyActiveUserReportResponse struct {
  1980  	BaseHTTPResponse
  1981  	DailyActiveUsers []Count `json:"dailyActiveUsers,omitempty"`
  1982  	Total            int64   `json:"total,omitempty"`
  1983  }
  1984  
  1985  func (b *DailyActiveUserReportResponse) SetStatus(status int) {
  1986  	b.StatusCode = status
  1987  }
  1988  
  1989  /**
  1990   * @author Daniel DeGroff
  1991   */
  1992  type VersionResponse struct {
  1993  	BaseHTTPResponse
  1994  	Version string `json:"version,omitempty"`
  1995  }
  1996  
  1997  func (b *VersionResponse) SetStatus(status int) {
  1998  	b.StatusCode = status
  1999  }
  2000  
  2001  /**
  2002   * @author Michael Sleevi
  2003   */
  2004  type PreviewMessageTemplateRequest struct {
  2005  	Locale          string          `json:"locale,omitempty"`
  2006  	MessageTemplate MessageTemplate `json:"messageTemplate,omitempty"`
  2007  }
  2008  
  2009  /**
  2010   * @author Daniel DeGroff
  2011   */
  2012  type IssueResponse struct {
  2013  	BaseHTTPResponse
  2014  	RefreshToken string `json:"refreshToken,omitempty"`
  2015  	Token        string `json:"token,omitempty"`
  2016  }
  2017  
  2018  func (b *IssueResponse) SetStatus(status int) {
  2019  	b.StatusCode = status
  2020  }
  2021  
  2022  /**
  2023   * Response for the login report.
  2024   *
  2025   * @author Brian Pontarelli
  2026   */
  2027  type LoginReportResponse struct {
  2028  	BaseHTTPResponse
  2029  	HourlyCounts []Count `json:"hourlyCounts,omitempty"`
  2030  	Total        int64   `json:"total,omitempty"`
  2031  }
  2032  
  2033  func (b *LoginReportResponse) SetStatus(status int) {
  2034  	b.StatusCode = status
  2035  }
  2036  
  2037  /**
  2038   * @author Daniel DeGroff
  2039   */
  2040  type HTTPMethod string
  2041  
  2042  func (e HTTPMethod) String() string {
  2043  	return string(e)
  2044  }
  2045  
  2046  const (
  2047  	HTTPMethod_GET     HTTPMethod = "GET"
  2048  	HTTPMethod_POST    HTTPMethod = "POST"
  2049  	HTTPMethod_PUT     HTTPMethod = "PUT"
  2050  	HTTPMethod_DELETE  HTTPMethod = "DELETE"
  2051  	HTTPMethod_HEAD    HTTPMethod = "HEAD"
  2052  	HTTPMethod_OPTIONS HTTPMethod = "OPTIONS"
  2053  	HTTPMethod_PATCH   HTTPMethod = "PATCH"
  2054  )
  2055  
  2056  /**
  2057   * @author Mikey Sleevi
  2058   */
  2059  type Message struct {
  2060  }
  2061  
  2062  // Do not require a setter for 'type', it is defined by the concrete class and is not mutable
  2063  type BaseIdentityProvider struct {
  2064  	Enableable
  2065  	ApplicationConfiguration map[string]interface{}                         `json:"applicationConfiguration,omitempty"`
  2066  	Data                     map[string]interface{}                         `json:"data,omitempty"`
  2067  	Debug                    bool                                           `json:"debug"`
  2068  	Id                       string                                         `json:"id,omitempty"`
  2069  	InsertInstant            int64                                          `json:"insertInstant,omitempty"`
  2070  	LambdaConfiguration      ProviderLambdaConfiguration                    `json:"lambdaConfiguration,omitempty"`
  2071  	LastUpdateInstant        int64                                          `json:"lastUpdateInstant,omitempty"`
  2072  	LinkingStrategy          IdentityProviderLinkingStrategy                `json:"linkingStrategy,omitempty"`
  2073  	Name                     string                                         `json:"name,omitempty"`
  2074  	TenantConfiguration      map[string]IdentityProviderTenantConfiguration `json:"tenantConfiguration,omitempty"`
  2075  	Type                     IdentityProviderType                           `json:"type,omitempty"`
  2076  }
  2077  
  2078  type MultiFactorEmailMethod struct {
  2079  	Enableable
  2080  	TemplateId string `json:"templateId,omitempty"`
  2081  }
  2082  
  2083  /**
  2084   * @author Trevor Smith
  2085   */
  2086  type ConnectorRequest struct {
  2087  	Connector BaseConnectorConfiguration `json:"connector,omitempty"`
  2088  }
  2089  
  2090  /**
  2091   * Models the User Created Event.
  2092   * <p>
  2093   * This is different than the user.create event in that it will be sent after the user has been created. This event cannot be made transactional.
  2094   *
  2095   * @author Daniel DeGroff
  2096   */
  2097  type UserCreateCompleteEvent struct {
  2098  	BaseEvent
  2099  	User User `json:"user,omitempty"`
  2100  }
  2101  
  2102  /**
  2103   * A number identifying a cryptographic algorithm. Values should be registered with the <a
  2104   * href="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">IANA COSE Algorithms registry</a>
  2105   *
  2106   * @author Spencer Witt
  2107   */
  2108  type CoseAlgorithmIdentifier string
  2109  
  2110  func (e CoseAlgorithmIdentifier) String() string {
  2111  	return string(e)
  2112  }
  2113  
  2114  const (
  2115  	CoseAlgorithmIdentifier_ES256 CoseAlgorithmIdentifier = "ES256"
  2116  	CoseAlgorithmIdentifier_ES384 CoseAlgorithmIdentifier = "ES384"
  2117  	CoseAlgorithmIdentifier_ES512 CoseAlgorithmIdentifier = "ES512"
  2118  	CoseAlgorithmIdentifier_RS256 CoseAlgorithmIdentifier = "RS256"
  2119  	CoseAlgorithmIdentifier_RS384 CoseAlgorithmIdentifier = "RS384"
  2120  	CoseAlgorithmIdentifier_RS512 CoseAlgorithmIdentifier = "RS512"
  2121  	CoseAlgorithmIdentifier_PS256 CoseAlgorithmIdentifier = "PS256"
  2122  	CoseAlgorithmIdentifier_PS384 CoseAlgorithmIdentifier = "PS384"
  2123  	CoseAlgorithmIdentifier_PS512 CoseAlgorithmIdentifier = "PS512"
  2124  )
  2125  
  2126  /**
  2127   * @author andrewpai
  2128   */
  2129  type SelfServiceFormConfiguration struct {
  2130  	RequireCurrentPasswordOnPasswordChange bool `json:"requireCurrentPasswordOnPasswordChange"`
  2131  }
  2132  
  2133  /**
  2134   * @author Daniel DeGroff
  2135   */
  2136  type RememberPreviousPasswords struct {
  2137  	Enableable
  2138  	Count int `json:"count,omitempty"`
  2139  }
  2140  
  2141  /**
  2142   * @author Daniel DeGroff
  2143   */
  2144  type HYPRApplicationConfiguration struct {
  2145  	BaseIdentityProviderApplicationConfiguration
  2146  	RelyingPartyApplicationId string `json:"relyingPartyApplicationId,omitempty"`
  2147  	RelyingPartyURL           string `json:"relyingPartyURL,omitempty"`
  2148  }
  2149  
  2150  /**
  2151   * @author Brett Guy
  2152   */
  2153  type KafkaMessengerConfiguration struct {
  2154  	BaseMessengerConfiguration
  2155  	DefaultTopic string            `json:"defaultTopic,omitempty"`
  2156  	Producer     map[string]string `json:"producer,omitempty"`
  2157  }
  2158  
  2159  /**
  2160   * Models the User Created Registration Event.
  2161   * <p>
  2162   * This is different than the user.registration.create event in that it will be sent after the user has been created. This event cannot be made
  2163   * transactional.
  2164   *
  2165   * @author Daniel DeGroff
  2166   */
  2167  type UserRegistrationCreateCompleteEvent struct {
  2168  	BaseEvent
  2169  	ApplicationId string           `json:"applicationId,omitempty"`
  2170  	Registration  UserRegistration `json:"registration,omitempty"`
  2171  	User          User             `json:"user,omitempty"`
  2172  }
  2173  
  2174  /**
  2175   * @author Daniel DeGroff
  2176   */
  2177  type LoginRecordSearchRequest struct {
  2178  	RetrieveTotal bool                      `json:"retrieveTotal"`
  2179  	Search        LoginRecordSearchCriteria `json:"search,omitempty"`
  2180  }
  2181  
  2182  /**
  2183   * @author Daniel DeGroff
  2184   */
  2185  type KafkaConfiguration struct {
  2186  	Enableable
  2187  	DefaultTopic string            `json:"defaultTopic,omitempty"`
  2188  	Producer     map[string]string `json:"producer,omitempty"`
  2189  }
  2190  
  2191  /**
  2192   * This class contains the managed fields that are also put into the database during FusionAuth setup.
  2193   * <p>
  2194   * Internal Note: These fields are also declared in SQL in order to bootstrap the system. These need to stay in sync.
  2195   * Any changes to these fields needs to also be reflected in mysql.sql and postgresql.sql
  2196   *
  2197   * @author Brian Pontarelli
  2198   */
  2199  type ManagedFields struct {
  2200  }
  2201  
  2202  /**
  2203   * Response for the daily active user report.
  2204   *
  2205   * @author Brian Pontarelli
  2206   */
  2207  type MonthlyActiveUserReportResponse struct {
  2208  	BaseHTTPResponse
  2209  	MonthlyActiveUsers []Count `json:"monthlyActiveUsers,omitempty"`
  2210  	Total              int64   `json:"total,omitempty"`
  2211  }
  2212  
  2213  func (b *MonthlyActiveUserReportResponse) SetStatus(status int) {
  2214  	b.StatusCode = status
  2215  }
  2216  
  2217  /**
  2218   * @author Daniel DeGroff
  2219   */
  2220  type IdentityProviderLinkRequest struct {
  2221  	BaseEventRequest
  2222  	IdentityProviderLink IdentityProviderLink `json:"identityProviderLink,omitempty"`
  2223  	PendingIdPLinkId     string               `json:"pendingIdPLinkId,omitempty"`
  2224  }
  2225  
  2226  /**
  2227   * The types of lambdas that indicate how they are invoked by FusionAuth.
  2228   *
  2229   * @author Brian Pontarelli
  2230   */
  2231  type LambdaType string
  2232  
  2233  func (e LambdaType) String() string {
  2234  	return string(e)
  2235  }
  2236  
  2237  const (
  2238  	LambdaType_JWTPopulate                       LambdaType = "JWTPopulate"
  2239  	LambdaType_OpenIDReconcile                   LambdaType = "OpenIDReconcile"
  2240  	LambdaType_SAMLv2Reconcile                   LambdaType = "SAMLv2Reconcile"
  2241  	LambdaType_SAMLv2Populate                    LambdaType = "SAMLv2Populate"
  2242  	LambdaType_AppleReconcile                    LambdaType = "AppleReconcile"
  2243  	LambdaType_ExternalJWTReconcile              LambdaType = "ExternalJWTReconcile"
  2244  	LambdaType_FacebookReconcile                 LambdaType = "FacebookReconcile"
  2245  	LambdaType_GoogleReconcile                   LambdaType = "GoogleReconcile"
  2246  	LambdaType_HYPRReconcile                     LambdaType = "HYPRReconcile"
  2247  	LambdaType_TwitterReconcile                  LambdaType = "TwitterReconcile"
  2248  	LambdaType_LDAPConnectorReconcile            LambdaType = "LDAPConnectorReconcile"
  2249  	LambdaType_LinkedInReconcile                 LambdaType = "LinkedInReconcile"
  2250  	LambdaType_EpicGamesReconcile                LambdaType = "EpicGamesReconcile"
  2251  	LambdaType_NintendoReconcile                 LambdaType = "NintendoReconcile"
  2252  	LambdaType_SonyPSNReconcile                  LambdaType = "SonyPSNReconcile"
  2253  	LambdaType_SteamReconcile                    LambdaType = "SteamReconcile"
  2254  	LambdaType_TwitchReconcile                   LambdaType = "TwitchReconcile"
  2255  	LambdaType_XboxReconcile                     LambdaType = "XboxReconcile"
  2256  	LambdaType_ClientCredentialsJWTPopulate      LambdaType = "ClientCredentialsJWTPopulate"
  2257  	LambdaType_SCIMServerGroupRequestConverter   LambdaType = "SCIMServerGroupRequestConverter"
  2258  	LambdaType_SCIMServerGroupResponseConverter  LambdaType = "SCIMServerGroupResponseConverter"
  2259  	LambdaType_SCIMServerUserRequestConverter    LambdaType = "SCIMServerUserRequestConverter"
  2260  	LambdaType_SCIMServerUserResponseConverter   LambdaType = "SCIMServerUserResponseConverter"
  2261  	LambdaType_SelfServiceRegistrationValidation LambdaType = "SelfServiceRegistrationValidation"
  2262  	LambdaType_UserInfoPopulate                  LambdaType = "UserInfoPopulate"
  2263  )
  2264  
  2265  /**
  2266   * @author Daniel DeGroff
  2267   */
  2268  type SecureGeneratorConfiguration struct {
  2269  	Length int                 `json:"length,omitempty"`
  2270  	Type   SecureGeneratorType `json:"type,omitempty"`
  2271  }
  2272  
  2273  /**
  2274   * Models an LDAP connector.
  2275   *
  2276   * @author Trevor Smith
  2277   */
  2278  type LDAPConnectorConfiguration struct {
  2279  	BaseConnectorConfiguration
  2280  	AuthenticationURL     string                       `json:"authenticationURL,omitempty"`
  2281  	BaseStructure         string                       `json:"baseStructure,omitempty"`
  2282  	ConnectTimeout        int                          `json:"connectTimeout,omitempty"`
  2283  	IdentifyingAttribute  string                       `json:"identifyingAttribute,omitempty"`
  2284  	LambdaConfiguration   ConnectorLambdaConfiguration `json:"lambdaConfiguration,omitempty"`
  2285  	LoginIdAttribute      string                       `json:"loginIdAttribute,omitempty"`
  2286  	ReadTimeout           int                          `json:"readTimeout,omitempty"`
  2287  	RequestedAttributes   []string                     `json:"requestedAttributes,omitempty"`
  2288  	SecurityMethod        LDAPSecurityMethod           `json:"securityMethod,omitempty"`
  2289  	SystemAccountDN       string                       `json:"systemAccountDN,omitempty"`
  2290  	SystemAccountPassword string                       `json:"systemAccountPassword,omitempty"`
  2291  }
  2292  
  2293  /**
  2294   * External JWT-only identity provider.
  2295   *
  2296   * @author Daniel DeGroff and Brian Pontarelli
  2297   */
  2298  type ExternalJWTIdentityProvider struct {
  2299  	BaseIdentityProvider
  2300  	ClaimMap            map[string]string                   `json:"claimMap,omitempty"`
  2301  	DefaultKeyId        string                              `json:"defaultKeyId,omitempty"`
  2302  	Domains             []string                            `json:"domains,omitempty"`
  2303  	HeaderKeyParameter  string                              `json:"headerKeyParameter,omitempty"`
  2304  	Oauth2              IdentityProviderOauth2Configuration `json:"oauth2,omitempty"`
  2305  	UniqueIdentityClaim string                              `json:"uniqueIdentityClaim,omitempty"`
  2306  }
  2307  
  2308  /**
  2309   * Lambda API request object.
  2310   *
  2311   * @author Brian Pontarelli
  2312   */
  2313  type LambdaRequest struct {
  2314  	Lambda Lambda `json:"lambda,omitempty"`
  2315  }
  2316  
  2317  /**
  2318   * Models an event where a user's email is updated outside of a forgot / change password workflow.
  2319   *
  2320   * @author Daniel DeGroff
  2321   */
  2322  type UserEmailUpdateEvent struct {
  2323  	BaseEvent
  2324  	PreviousEmail string `json:"previousEmail,omitempty"`
  2325  	User          User   `json:"user,omitempty"`
  2326  }
  2327  
  2328  /**
  2329   * Raw login information for each time a user logs into an application.
  2330   *
  2331   * @author Brian Pontarelli
  2332   */
  2333  type RawLogin struct {
  2334  	ApplicationId string `json:"applicationId,omitempty"`
  2335  	Instant       int64  `json:"instant,omitempty"`
  2336  	IpAddress     string `json:"ipAddress,omitempty"`
  2337  	UserId        string `json:"userId,omitempty"`
  2338  }
  2339  
  2340  /**
  2341   * Search response for Group Members
  2342   *
  2343   * @author Daniel DeGroff
  2344   */
  2345  type GroupMemberSearchResponse struct {
  2346  	BaseHTTPResponse
  2347  	Members []GroupMember `json:"members,omitempty"`
  2348  	Total   int64         `json:"total,omitempty"`
  2349  }
  2350  
  2351  func (b *GroupMemberSearchResponse) SetStatus(status int) {
  2352  	b.StatusCode = status
  2353  }
  2354  
  2355  /**
  2356   * API response for retrieving Refresh Tokens
  2357   *
  2358   * @author Daniel DeGroff
  2359   */
  2360  type RefreshTokenResponse struct {
  2361  	BaseHTTPResponse
  2362  	RefreshToken  RefreshToken   `json:"refreshToken,omitempty"`
  2363  	RefreshTokens []RefreshToken `json:"refreshTokens,omitempty"`
  2364  }
  2365  
  2366  func (b *RefreshTokenResponse) SetStatus(status int) {
  2367  	b.StatusCode = status
  2368  }
  2369  
  2370  /**
  2371   * @author Daniel DeGroff
  2372   */
  2373  type DeviceApprovalResponse struct {
  2374  	BaseHTTPResponse
  2375  	DeviceGrantStatus    string               `json:"deviceGrantStatus,omitempty"`
  2376  	DeviceInfo           DeviceInfo           `json:"deviceInfo,omitempty"`
  2377  	IdentityProviderLink IdentityProviderLink `json:"identityProviderLink,omitempty"`
  2378  	TenantId             string               `json:"tenantId,omitempty"`
  2379  	UserId               string               `json:"userId,omitempty"`
  2380  }
  2381  
  2382  func (b *DeviceApprovalResponse) SetStatus(status int) {
  2383  	b.StatusCode = status
  2384  }
  2385  
  2386  /**
  2387   * JSON Web Token (JWT) as defined by RFC 7519.
  2388   * <pre>
  2389   * From RFC 7519 Section 1. Introduction:
  2390   *    The suggested pronunciation of JWT is the same as the English word "jot".
  2391   * </pre>
  2392   * The JWT is not Thread-Safe and should not be re-used.
  2393   *
  2394   * @author Daniel DeGroff
  2395   */
  2396  type JWT struct {
  2397  	Aud         interface{}            `json:"aud,omitempty"`
  2398  	Exp         int64                  `json:"exp,omitempty"`
  2399  	Iat         int64                  `json:"iat,omitempty"`
  2400  	Iss         string                 `json:"iss,omitempty"`
  2401  	Jti         string                 `json:"jti,omitempty"`
  2402  	Nbf         int64                  `json:"nbf,omitempty"`
  2403  	OtherClaims map[string]interface{} `json:"otherClaims,omitempty"`
  2404  	Sub         string                 `json:"sub,omitempty"`
  2405  }
  2406  
  2407  /**
  2408   * @author Brian Pontarelli
  2409   */
  2410  type Tenantable struct {
  2411  }
  2412  
  2413  /**
  2414   * Used by the Relying Party to specify their requirements for authenticator attributes. Fields use the deprecated "resident key" terminology to refer
  2415   * to client-side discoverable credentials to maintain backwards compatibility with WebAuthn Level 1.
  2416   *
  2417   * @author Spencer Witt
  2418   */
  2419  type AuthenticatorSelectionCriteria struct {
  2420  	AuthenticatorAttachment AuthenticatorAttachment     `json:"authenticatorAttachment,omitempty"`
  2421  	RequireResidentKey      bool                        `json:"requireResidentKey"`
  2422  	ResidentKey             ResidentKeyRequirement      `json:"residentKey,omitempty"`
  2423  	UserVerification        UserVerificationRequirement `json:"userVerification,omitempty"`
  2424  }
  2425  
  2426  /**
  2427   * @author Daniel DeGroff
  2428   */
  2429  type ApplicationWebAuthnWorkflowConfiguration struct {
  2430  	Enableable
  2431  }
  2432  
  2433  /**
  2434   * Used to communicate whether and how authenticator attestation should be delivered to the Relying Party
  2435   *
  2436   * @author Spencer Witt
  2437   */
  2438  type AttestationConveyancePreference string
  2439  
  2440  func (e AttestationConveyancePreference) String() string {
  2441  	return string(e)
  2442  }
  2443  
  2444  const (
  2445  	AttestationConveyancePreference_None       AttestationConveyancePreference = "none"
  2446  	AttestationConveyancePreference_Indirect   AttestationConveyancePreference = "indirect"
  2447  	AttestationConveyancePreference_Direct     AttestationConveyancePreference = "direct"
  2448  	AttestationConveyancePreference_Enterprise AttestationConveyancePreference = "enterprise"
  2449  )
  2450  
  2451  /**
  2452   * SAML v2 identity provider configuration.
  2453   *
  2454   * @author Brian Pontarelli
  2455   */
  2456  type SAMLv2IdentityProvider struct {
  2457  	BaseSAMLv2IdentityProvider
  2458  	AssertionConfiguration    SAMLv2AssertionConfiguration    `json:"assertionConfiguration,omitempty"`
  2459  	ButtonImageURL            string                          `json:"buttonImageURL,omitempty"`
  2460  	ButtonText                string                          `json:"buttonText,omitempty"`
  2461  	Domains                   []string                        `json:"domains,omitempty"`
  2462  	IdpEndpoint               string                          `json:"idpEndpoint,omitempty"`
  2463  	IdpInitiatedConfiguration SAMLv2IdpInitiatedConfiguration `json:"idpInitiatedConfiguration,omitempty"`
  2464  	Issuer                    string                          `json:"issuer,omitempty"`
  2465  	LoginHintConfiguration    LoginHintConfiguration          `json:"loginHintConfiguration,omitempty"`
  2466  	NameIdFormat              string                          `json:"nameIdFormat,omitempty"`
  2467  	PostRequest               bool                            `json:"postRequest"`
  2468  	RequestSigningKeyId       string                          `json:"requestSigningKeyId,omitempty"`
  2469  	SignRequest               bool                            `json:"signRequest"`
  2470  	XmlSignatureC14nMethod    CanonicalizationMethod          `json:"xmlSignatureC14nMethod,omitempty"`
  2471  }
  2472  
  2473  /**
  2474   * Facebook social login provider.
  2475   *
  2476   * @author Brian Pontarelli
  2477   */
  2478  type FacebookIdentityProvider struct {
  2479  	BaseIdentityProvider
  2480  	AppId        string                      `json:"appId,omitempty"`
  2481  	ButtonText   string                      `json:"buttonText,omitempty"`
  2482  	ClientSecret string                      `json:"client_secret,omitempty"`
  2483  	Fields       string                      `json:"fields,omitempty"`
  2484  	LoginMethod  IdentityProviderLoginMethod `json:"loginMethod,omitempty"`
  2485  	Permissions  string                      `json:"permissions,omitempty"`
  2486  }
  2487  
  2488  /**
  2489   * An expandable API request.
  2490   *
  2491   * @author Daniel DeGroff
  2492   */
  2493  type ExpandableRequest struct {
  2494  	Expand []string `json:"expand,omitempty"`
  2495  }
  2496  
  2497  /**
  2498   * Interface for all identity providers that can be domain based.
  2499   */
  2500  type DomainBasedIdentityProvider struct {
  2501  }
  2502  
  2503  /**
  2504   * @author Daniel DeGroff
  2505   */
  2506  type ObjectState string
  2507  
  2508  func (e ObjectState) String() string {
  2509  	return string(e)
  2510  }
  2511  
  2512  const (
  2513  	ObjectState_Active        ObjectState = "Active"
  2514  	ObjectState_Inactive      ObjectState = "Inactive"
  2515  	ObjectState_PendingDelete ObjectState = "PendingDelete"
  2516  )
  2517  
  2518  /**
  2519   * Email template request.
  2520   *
  2521   * @author Brian Pontarelli
  2522   */
  2523  type EmailTemplateRequest struct {
  2524  	EmailTemplate EmailTemplate `json:"emailTemplate,omitempty"`
  2525  }
  2526  
  2527  /**
  2528   * API response for completing WebAuthn credential registration or assertion
  2529   *
  2530   * @author Spencer Witt
  2531   */
  2532  type WebAuthnRegisterCompleteResponse struct {
  2533  	BaseHTTPResponse
  2534  	Credential WebAuthnCredential `json:"credential,omitempty"`
  2535  }
  2536  
  2537  func (b *WebAuthnRegisterCompleteResponse) SetStatus(status int) {
  2538  	b.StatusCode = status
  2539  }
  2540  
  2541  type IdentityProviderDetails struct {
  2542  	ApplicationIds []string                            `json:"applicationIds,omitempty"`
  2543  	Id             string                              `json:"id,omitempty"`
  2544  	IdpEndpoint    string                              `json:"idpEndpoint,omitempty"`
  2545  	Name           string                              `json:"name,omitempty"`
  2546  	Oauth2         IdentityProviderOauth2Configuration `json:"oauth2,omitempty"`
  2547  	Type           IdentityProviderType                `json:"type,omitempty"`
  2548  }
  2549  
  2550  /**
  2551   * @author Brett Pontarelli
  2552   */
  2553  type AuthenticationThreats string
  2554  
  2555  func (e AuthenticationThreats) String() string {
  2556  	return string(e)
  2557  }
  2558  
  2559  const (
  2560  	AuthenticationThreats_ImpossibleTravel AuthenticationThreats = "ImpossibleTravel"
  2561  )
  2562  
  2563  /**
  2564   * @author Daniel DeGroff
  2565   */
  2566  type TenantRequest struct {
  2567  	BaseEventRequest
  2568  	SourceTenantId string   `json:"sourceTenantId,omitempty"`
  2569  	Tenant         Tenant   `json:"tenant,omitempty"`
  2570  	WebhookIds     []string `json:"webhookIds,omitempty"`
  2571  }
  2572  
  2573  /**
  2574   * @author Brett Guy
  2575   */
  2576  type IPAccessControlListSearchCriteria struct {
  2577  	BaseSearchCriteria
  2578  	Name string `json:"name,omitempty"`
  2579  }
  2580  
  2581  /**
  2582   * @author Daniel DeGroff
  2583   */
  2584  type AppleApplicationConfiguration struct {
  2585  	BaseIdentityProviderApplicationConfiguration
  2586  	BundleId   string `json:"bundleId,omitempty"`
  2587  	ButtonText string `json:"buttonText,omitempty"`
  2588  	KeyId      string `json:"keyId,omitempty"`
  2589  	Scope      string `json:"scope,omitempty"`
  2590  	ServicesId string `json:"servicesId,omitempty"`
  2591  	TeamId     string `json:"teamId,omitempty"`
  2592  }
  2593  
  2594  /**
  2595   * @author Spencer Witt
  2596   */
  2597  type TenantWebAuthnWorkflowConfiguration struct {
  2598  	Enableable
  2599  	AuthenticatorAttachmentPreference AuthenticatorAttachmentPreference `json:"authenticatorAttachmentPreference,omitempty"`
  2600  	UserVerificationRequirement       UserVerificationRequirement       `json:"userVerificationRequirement,omitempty"`
  2601  }
  2602  
  2603  /**
  2604   * Model a user event when a two-factor method has been added.
  2605   *
  2606   * @author Daniel DeGroff
  2607   */
  2608  type UserTwoFactorMethodRemoveEvent struct {
  2609  	BaseEvent
  2610  	Method TwoFactorMethod `json:"method,omitempty"`
  2611  	User   User            `json:"user,omitempty"`
  2612  }
  2613  
  2614  type UsernameModeration struct {
  2615  	Enableable
  2616  	ApplicationId string `json:"applicationId,omitempty"`
  2617  }
  2618  
  2619  /**
  2620   * Authentication key request object.
  2621   *
  2622   * @author Sanjay
  2623   */
  2624  type APIKeyRequest struct {
  2625  	ApiKey      APIKey `json:"apiKey,omitempty"`
  2626  	SourceKeyId string `json:"sourceKeyId,omitempty"`
  2627  }
  2628  
  2629  type EventConfigurationData struct {
  2630  	Enableable
  2631  	TransactionType TransactionType `json:"transactionType,omitempty"`
  2632  }
  2633  
  2634  /**
  2635   * The <i>authenticator's</i> response for the registration ceremony in its encoded format
  2636   *
  2637   * @author Spencer Witt
  2638   */
  2639  type WebAuthnAuthenticatorRegistrationResponse struct {
  2640  	BaseHTTPResponse
  2641  	AttestationObject string `json:"attestationObject,omitempty"`
  2642  	ClientDataJSON    string `json:"clientDataJSON,omitempty"`
  2643  }
  2644  
  2645  func (b *WebAuthnAuthenticatorRegistrationResponse) SetStatus(status int) {
  2646  	b.StatusCode = status
  2647  }
  2648  
  2649  /**
  2650   * @author Daniel DeGroff
  2651   */
  2652  type PasswordlessLoginRequest struct {
  2653  	BaseLoginRequest
  2654  	Code             string `json:"code,omitempty"`
  2655  	TwoFactorTrustId string `json:"twoFactorTrustId,omitempty"`
  2656  }
  2657  
  2658  /**
  2659   * Search criteria for Consents
  2660   *
  2661   * @author Spencer Witt
  2662   */
  2663  type ConsentSearchCriteria struct {
  2664  	BaseSearchCriteria
  2665  	Name string `json:"name,omitempty"`
  2666  }
  2667  
  2668  /**
  2669   * JWT Configuration. A JWT Configuration for an Application may not be active if it is using the global configuration, the configuration
  2670   * may be <code>enabled = false</code>.
  2671   *
  2672   * @author Daniel DeGroff
  2673   */
  2674  type JWTConfiguration struct {
  2675  	Enableable
  2676  	AccessTokenKeyId                       string                                 `json:"accessTokenKeyId,omitempty"`
  2677  	IdTokenKeyId                           string                                 `json:"idTokenKeyId,omitempty"`
  2678  	RefreshTokenExpirationPolicy           RefreshTokenExpirationPolicy           `json:"refreshTokenExpirationPolicy,omitempty"`
  2679  	RefreshTokenRevocationPolicy           RefreshTokenRevocationPolicy           `json:"refreshTokenRevocationPolicy,omitempty"`
  2680  	RefreshTokenSlidingWindowConfiguration RefreshTokenSlidingWindowConfiguration `json:"refreshTokenSlidingWindowConfiguration,omitempty"`
  2681  	RefreshTokenTimeToLiveInMinutes        int                                    `json:"refreshTokenTimeToLiveInMinutes,omitempty"`
  2682  	RefreshTokenUsagePolicy                RefreshTokenUsagePolicy                `json:"refreshTokenUsagePolicy,omitempty"`
  2683  	TimeToLiveInSeconds                    int                                    `json:"timeToLiveInSeconds,omitempty"`
  2684  }
  2685  
  2686  type EmailTemplateErrors struct {
  2687  	ParseErrors  map[string]string `json:"parseErrors,omitempty"`
  2688  	RenderErrors map[string]string `json:"renderErrors,omitempty"`
  2689  }
  2690  
  2691  /**
  2692   * Models the User Login event that is suspicious.
  2693   *
  2694   * @author Daniel DeGroff
  2695   */
  2696  type UserLoginSuspiciousEvent struct {
  2697  	UserLoginSuccessEvent
  2698  	ThreatsDetected []AuthenticationThreats `json:"threatsDetected,omitempty"`
  2699  }
  2700  
  2701  /**
  2702   * Describes the Relying Party's requirements for <a href="https://www.w3.org/TR/webauthn-2/#client-side-discoverable-credential">client-side
  2703   * discoverable credentials</a> (formerly known as "resident keys")
  2704   *
  2705   * @author Spencer Witt
  2706   */
  2707  type ResidentKeyRequirement string
  2708  
  2709  func (e ResidentKeyRequirement) String() string {
  2710  	return string(e)
  2711  }
  2712  
  2713  const (
  2714  	ResidentKeyRequirement_Discouraged ResidentKeyRequirement = "discouraged"
  2715  	ResidentKeyRequirement_Preferred   ResidentKeyRequirement = "preferred"
  2716  	ResidentKeyRequirement_Required    ResidentKeyRequirement = "required"
  2717  )
  2718  
  2719  /**
  2720   * @author Daniel DeGroff
  2721   */
  2722  type TestEvent struct {
  2723  	BaseEvent
  2724  	Message string `json:"message,omitempty"`
  2725  }
  2726  
  2727  /**
  2728   * Webhook API response object.
  2729   *
  2730   * @author Brian Pontarelli
  2731   */
  2732  type WebhookResponse struct {
  2733  	BaseHTTPResponse
  2734  	Webhook  Webhook   `json:"webhook,omitempty"`
  2735  	Webhooks []Webhook `json:"webhooks,omitempty"`
  2736  }
  2737  
  2738  func (b *WebhookResponse) SetStatus(status int) {
  2739  	b.StatusCode = status
  2740  }
  2741  
  2742  /**
  2743   * Information about a user event (login, register, etc) that helps identify the source of the event (location, device type, OS, etc).
  2744   *
  2745   * @author Brian Pontarelli
  2746   */
  2747  type EventInfo struct {
  2748  	Data              map[string]interface{} `json:"data,omitempty"`
  2749  	DeviceDescription string                 `json:"deviceDescription,omitempty"`
  2750  	DeviceName        string                 `json:"deviceName,omitempty"`
  2751  	DeviceType        string                 `json:"deviceType,omitempty"`
  2752  	IpAddress         string                 `json:"ipAddress,omitempty"`
  2753  	Location          Location               `json:"location,omitempty"`
  2754  	Os                string                 `json:"os,omitempty"`
  2755  	UserAgent         string                 `json:"userAgent,omitempty"`
  2756  }
  2757  
  2758  /**
  2759   * Lambda API response object.
  2760   *
  2761   * @author Brian Pontarelli
  2762   */
  2763  type LambdaResponse struct {
  2764  	BaseHTTPResponse
  2765  	Lambda  Lambda   `json:"lambda,omitempty"`
  2766  	Lambdas []Lambda `json:"lambdas,omitempty"`
  2767  }
  2768  
  2769  func (b *LambdaResponse) SetStatus(status int) {
  2770  	b.StatusCode = status
  2771  }
  2772  
  2773  /**
  2774   * @author Brett Guy
  2775   */
  2776  type ClientAuthenticationPolicy string
  2777  
  2778  func (e ClientAuthenticationPolicy) String() string {
  2779  	return string(e)
  2780  }
  2781  
  2782  const (
  2783  	ClientAuthenticationPolicy_Required                 ClientAuthenticationPolicy = "Required"
  2784  	ClientAuthenticationPolicy_NotRequired              ClientAuthenticationPolicy = "NotRequired"
  2785  	ClientAuthenticationPolicy_NotRequiredWhenUsingPKCE ClientAuthenticationPolicy = "NotRequiredWhenUsingPKCE"
  2786  )
  2787  
  2788  /**
  2789   * @author Daniel DeGroff
  2790   */
  2791  type RefreshTokenUsagePolicy string
  2792  
  2793  func (e RefreshTokenUsagePolicy) String() string {
  2794  	return string(e)
  2795  }
  2796  
  2797  const (
  2798  	RefreshTokenUsagePolicy_Reusable   RefreshTokenUsagePolicy = "Reusable"
  2799  	RefreshTokenUsagePolicy_OneTimeUse RefreshTokenUsagePolicy = "OneTimeUse"
  2800  )
  2801  
  2802  /**
  2803   * Container for the event information. This is the JSON that is sent from FusionAuth to webhooks.
  2804   *
  2805   * @author Brian Pontarelli
  2806   */
  2807  type EventRequest struct {
  2808  	Event BaseEvent `json:"event,omitempty"`
  2809  }
  2810  
  2811  /**
  2812   * Available Integrations
  2813   *
  2814   * @author Daniel DeGroff
  2815   */
  2816  type Integrations struct {
  2817  	Cleanspeak CleanSpeakConfiguration `json:"cleanspeak,omitempty"`
  2818  	Kafka      KafkaConfiguration      `json:"kafka,omitempty"`
  2819  }
  2820  
  2821  /**
  2822   * Models the User Password Update Event.
  2823   *
  2824   * @author Daniel DeGroff
  2825   */
  2826  type UserPasswordUpdateEvent struct {
  2827  	BaseEvent
  2828  	User User `json:"user,omitempty"`
  2829  }
  2830  
  2831  /**
  2832   * Standard error domain object that can also be used as the response from an API call.
  2833   *
  2834   * @author Brian Pontarelli
  2835   */
  2836  type Errors struct {
  2837  	FieldErrors   map[string][]Error `json:"fieldErrors,omitempty"`
  2838  	GeneralErrors []Error            `json:"generalErrors,omitempty"`
  2839  }
  2840  
  2841  func (e Errors) Present() bool {
  2842  	return len(e.FieldErrors) != 0 || len(e.GeneralErrors) != 0
  2843  }
  2844  
  2845  func (e Errors) Error() string {
  2846  	var messages []string
  2847  	for _, generalError := range e.GeneralErrors {
  2848  		messages = append(messages, generalError.Message)
  2849  	}
  2850  	for fieldName, fieldErrors := range e.FieldErrors {
  2851  		var fieldMessages []string
  2852  		for _, fieldError := range fieldErrors {
  2853  			fieldMessages = append(fieldMessages, fieldError.Message)
  2854  		}
  2855  		messages = append(messages, fmt.Sprintf("%s: %s", fieldName, strings.Join(fieldMessages, ",")))
  2856  	}
  2857  	return strings.Join(messages, " ")
  2858  }
  2859  
  2860  /**
  2861   * @author Michael Sleevi
  2862   */
  2863  type PreviewMessageTemplateResponse struct {
  2864  	BaseHTTPResponse
  2865  	Errors  Errors     `json:"errors,omitempty"`
  2866  	Message SMSMessage `json:"message,omitempty"`
  2867  }
  2868  
  2869  func (b *PreviewMessageTemplateResponse) SetStatus(status int) {
  2870  	b.StatusCode = status
  2871  }
  2872  
  2873  /**
  2874   * @author Daniel DeGroff
  2875   */
  2876  type TenantFormConfiguration struct {
  2877  	AdminUserFormId string `json:"adminUserFormId,omitempty"`
  2878  }
  2879  
  2880  type DeviceType string
  2881  
  2882  func (e DeviceType) String() string {
  2883  	return string(e)
  2884  }
  2885  
  2886  const (
  2887  	DeviceType_BROWSER DeviceType = "BROWSER"
  2888  	DeviceType_DESKTOP DeviceType = "DESKTOP"
  2889  	DeviceType_LAPTOP  DeviceType = "LAPTOP"
  2890  	DeviceType_MOBILE  DeviceType = "MOBILE"
  2891  	DeviceType_OTHER   DeviceType = "OTHER"
  2892  	DeviceType_SERVER  DeviceType = "SERVER"
  2893  	DeviceType_TABLET  DeviceType = "TABLET"
  2894  	DeviceType_TV      DeviceType = "TV"
  2895  	DeviceType_UNKNOWN DeviceType = "UNKNOWN"
  2896  )
  2897  
  2898  /**
  2899   * Event log used internally by FusionAuth to help developers debug hooks, Webhooks, email templates, etc.
  2900   *
  2901   * @author Brian Pontarelli
  2902   */
  2903  type EventLog struct {
  2904  	Id            int64        `json:"id,omitempty"`
  2905  	InsertInstant int64        `json:"insertInstant,omitempty"`
  2906  	Message       string       `json:"message,omitempty"`
  2907  	Type          EventLogType `json:"type,omitempty"`
  2908  }
  2909  
  2910  /**
  2911   * This class is a simple attachment with a byte array, name and MIME type.
  2912   *
  2913   * @author Brian Pontarelli
  2914   */
  2915  type Attachment struct {
  2916  	Attachment []byte `json:"attachment,omitempty"`
  2917  	Mime       string `json:"mime,omitempty"`
  2918  	Name       string `json:"name,omitempty"`
  2919  }
  2920  
  2921  /**
  2922   * A grant for an entity to a user or another entity.
  2923   *
  2924   * @author Brian Pontarelli
  2925   */
  2926  type EntityGrant struct {
  2927  	Data              map[string]interface{} `json:"data,omitempty"`
  2928  	Entity            Entity                 `json:"entity,omitempty"`
  2929  	Id                string                 `json:"id,omitempty"`
  2930  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  2931  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  2932  	Permissions       []string               `json:"permissions,omitempty"`
  2933  	RecipientEntityId string                 `json:"recipientEntityId,omitempty"`
  2934  	UserId            string                 `json:"userId,omitempty"`
  2935  }
  2936  
  2937  /**
  2938   * User comment search response
  2939   *
  2940   * @author Spencer Witt
  2941   */
  2942  type UserCommentSearchResponse struct {
  2943  	BaseHTTPResponse
  2944  	Total        int64         `json:"total,omitempty"`
  2945  	UserComments []UserComment `json:"userComments,omitempty"`
  2946  }
  2947  
  2948  func (b *UserCommentSearchResponse) SetStatus(status int) {
  2949  	b.StatusCode = status
  2950  }
  2951  
  2952  /**
  2953   * @author Brett Pontarelli
  2954   */
  2955  type CaptchaMethod string
  2956  
  2957  func (e CaptchaMethod) String() string {
  2958  	return string(e)
  2959  }
  2960  
  2961  const (
  2962  	CaptchaMethod_GoogleRecaptchaV2  CaptchaMethod = "GoogleRecaptchaV2"
  2963  	CaptchaMethod_GoogleRecaptchaV3  CaptchaMethod = "GoogleRecaptchaV3"
  2964  	CaptchaMethod_HCaptcha           CaptchaMethod = "HCaptcha"
  2965  	CaptchaMethod_HCaptchaEnterprise CaptchaMethod = "HCaptchaEnterprise"
  2966  )
  2967  
  2968  /**
  2969   * @author Seth Musselman
  2970   */
  2971  type Application struct {
  2972  	AccessControlConfiguration       ApplicationAccessControlConfiguration      `json:"accessControlConfiguration,omitempty"`
  2973  	Active                           bool                                       `json:"active"`
  2974  	AuthenticationTokenConfiguration AuthenticationTokenConfiguration           `json:"authenticationTokenConfiguration,omitempty"`
  2975  	CleanSpeakConfiguration          CleanSpeakConfiguration                    `json:"cleanSpeakConfiguration,omitempty"`
  2976  	Data                             map[string]interface{}                     `json:"data,omitempty"`
  2977  	EmailConfiguration               ApplicationEmailConfiguration              `json:"emailConfiguration,omitempty"`
  2978  	ExternalIdentifierConfiguration  ApplicationExternalIdentifierConfiguration `json:"externalIdentifierConfiguration,omitempty"`
  2979  	FormConfiguration                ApplicationFormConfiguration               `json:"formConfiguration,omitempty"`
  2980  	Id                               string                                     `json:"id,omitempty"`
  2981  	InsertInstant                    int64                                      `json:"insertInstant,omitempty"`
  2982  	JwtConfiguration                 JWTConfiguration                           `json:"jwtConfiguration,omitempty"`
  2983  	LambdaConfiguration              LambdaConfiguration                        `json:"lambdaConfiguration,omitempty"`
  2984  	LastUpdateInstant                int64                                      `json:"lastUpdateInstant,omitempty"`
  2985  	LoginConfiguration               LoginConfiguration                         `json:"loginConfiguration,omitempty"`
  2986  	MultiFactorConfiguration         ApplicationMultiFactorConfiguration        `json:"multiFactorConfiguration,omitempty"`
  2987  	Name                             string                                     `json:"name,omitempty"`
  2988  	OauthConfiguration               OAuth2Configuration                        `json:"oauthConfiguration,omitempty"`
  2989  	PasswordlessConfiguration        PasswordlessConfiguration                  `json:"passwordlessConfiguration,omitempty"`
  2990  	RegistrationConfiguration        RegistrationConfiguration                  `json:"registrationConfiguration,omitempty"`
  2991  	RegistrationDeletePolicy         ApplicationRegistrationDeletePolicy        `json:"registrationDeletePolicy,omitempty"`
  2992  	Roles                            []ApplicationRole                          `json:"roles,omitempty"`
  2993  	Samlv2Configuration              SAMLv2Configuration                        `json:"samlv2Configuration,omitempty"`
  2994  	Scopes                           []ApplicationOAuthScope                    `json:"scopes,omitempty"`
  2995  	State                            ObjectState                                `json:"state,omitempty"`
  2996  	TenantId                         string                                     `json:"tenantId,omitempty"`
  2997  	ThemeId                          string                                     `json:"themeId,omitempty"`
  2998  	Unverified                       RegistrationUnverifiedOptions              `json:"unverified,omitempty"`
  2999  	VerificationEmailTemplateId      string                                     `json:"verificationEmailTemplateId,omitempty"`
  3000  	VerificationStrategy             VerificationStrategy                       `json:"verificationStrategy,omitempty"`
  3001  	VerifyRegistration               bool                                       `json:"verifyRegistration"`
  3002  	WebAuthnConfiguration            ApplicationWebAuthnConfiguration           `json:"webAuthnConfiguration,omitempty"`
  3003  }
  3004  
  3005  /**
  3006   * @author Daniel DeGroff
  3007   */
  3008  type SortField struct {
  3009  	Missing string `json:"missing,omitempty"`
  3010  	Name    string `json:"name,omitempty"`
  3011  	Order   Sort   `json:"order,omitempty"`
  3012  }
  3013  
  3014  /**
  3015   * SAML v2 IdP Initiated identity provider configuration.
  3016   *
  3017   * @author Daniel DeGroff
  3018   */
  3019  type SAMLv2IdPInitiatedIdentityProvider struct {
  3020  	BaseSAMLv2IdentityProvider
  3021  	Issuer string `json:"issuer,omitempty"`
  3022  }
  3023  
  3024  /**
  3025   * Search criteria for the event log.
  3026   *
  3027   * @author Brian Pontarelli
  3028   */
  3029  type EventLogSearchCriteria struct {
  3030  	BaseSearchCriteria
  3031  	End     int64        `json:"end,omitempty"`
  3032  	Message string       `json:"message,omitempty"`
  3033  	Start   int64        `json:"start,omitempty"`
  3034  	Type    EventLogType `json:"type,omitempty"`
  3035  }
  3036  
  3037  type KeyAlgorithm string
  3038  
  3039  func (e KeyAlgorithm) String() string {
  3040  	return string(e)
  3041  }
  3042  
  3043  const (
  3044  	KeyAlgorithm_ES256 KeyAlgorithm = "ES256"
  3045  	KeyAlgorithm_ES384 KeyAlgorithm = "ES384"
  3046  	KeyAlgorithm_ES512 KeyAlgorithm = "ES512"
  3047  	KeyAlgorithm_HS256 KeyAlgorithm = "HS256"
  3048  	KeyAlgorithm_HS384 KeyAlgorithm = "HS384"
  3049  	KeyAlgorithm_HS512 KeyAlgorithm = "HS512"
  3050  	KeyAlgorithm_RS256 KeyAlgorithm = "RS256"
  3051  	KeyAlgorithm_RS384 KeyAlgorithm = "RS384"
  3052  	KeyAlgorithm_RS512 KeyAlgorithm = "RS512"
  3053  )
  3054  
  3055  /**
  3056   * @author Daniel DeGroff
  3057   */
  3058  type JWTVendResponse struct {
  3059  	BaseHTTPResponse
  3060  	Token string `json:"token,omitempty"`
  3061  }
  3062  
  3063  func (b *JWTVendResponse) SetStatus(status int) {
  3064  	b.StatusCode = status
  3065  }
  3066  
  3067  /**
  3068   * Reindex API request
  3069   *
  3070   * @author Daniel DeGroff
  3071   */
  3072  type ReindexRequest struct {
  3073  	Index string `json:"index,omitempty"`
  3074  }
  3075  
  3076  /**
  3077   * Entity grant API response object.
  3078   *
  3079   * @author Brian Pontarelli
  3080   */
  3081  type EntityGrantResponse struct {
  3082  	BaseHTTPResponse
  3083  	Grant  EntityGrant   `json:"grant,omitempty"`
  3084  	Grants []EntityGrant `json:"grants,omitempty"`
  3085  }
  3086  
  3087  func (b *EntityGrantResponse) SetStatus(status int) {
  3088  	b.StatusCode = status
  3089  }
  3090  
  3091  type RegistrationConfiguration struct {
  3092  	Enableable
  3093  	BirthDate          Requirable       `json:"birthDate,omitempty"`
  3094  	ConfirmPassword    bool             `json:"confirmPassword"`
  3095  	FirstName          Requirable       `json:"firstName,omitempty"`
  3096  	FormId             string           `json:"formId,omitempty"`
  3097  	FullName           Requirable       `json:"fullName,omitempty"`
  3098  	LastName           Requirable       `json:"lastName,omitempty"`
  3099  	LoginIdType        LoginIdType      `json:"loginIdType,omitempty"`
  3100  	MiddleName         Requirable       `json:"middleName,omitempty"`
  3101  	MobilePhone        Requirable       `json:"mobilePhone,omitempty"`
  3102  	PreferredLanguages Requirable       `json:"preferredLanguages,omitempty"`
  3103  	Type               RegistrationType `json:"type,omitempty"`
  3104  }
  3105  
  3106  /**
  3107   * Helper interface that indicates an identity provider can be federated to using the HTTP POST method.
  3108   *
  3109   * @author Brian Pontarelli
  3110   */
  3111  type SupportsPostBindings struct {
  3112  }
  3113  
  3114  /**
  3115   * @author Daniel DeGroff
  3116   */
  3117  type OAuth2Configuration struct {
  3118  	AuthorizedOriginURLs          []string                            `json:"authorizedOriginURLs,omitempty"`
  3119  	AuthorizedRedirectURLs        []string                            `json:"authorizedRedirectURLs,omitempty"`
  3120  	AuthorizedURLValidationPolicy Oauth2AuthorizedURLValidationPolicy `json:"authorizedURLValidationPolicy,omitempty"`
  3121  	ClientAuthenticationPolicy    ClientAuthenticationPolicy          `json:"clientAuthenticationPolicy,omitempty"`
  3122  	ClientId                      string                              `json:"clientId,omitempty"`
  3123  	ClientSecret                  string                              `json:"clientSecret,omitempty"`
  3124  	ConsentMode                   OAuthScopeConsentMode               `json:"consentMode,omitempty"`
  3125  	Debug                         bool                                `json:"debug"`
  3126  	DeviceVerificationURL         string                              `json:"deviceVerificationURL,omitempty"`
  3127  	EnabledGrants                 []GrantType                         `json:"enabledGrants,omitempty"`
  3128  	GenerateRefreshTokens         bool                                `json:"generateRefreshTokens"`
  3129  	LogoutBehavior                LogoutBehavior                      `json:"logoutBehavior,omitempty"`
  3130  	LogoutURL                     string                              `json:"logoutURL,omitempty"`
  3131  	ProofKeyForCodeExchangePolicy ProofKeyForCodeExchangePolicy       `json:"proofKeyForCodeExchangePolicy,omitempty"`
  3132  	ProvidedScopePolicy           ProvidedScopePolicy                 `json:"providedScopePolicy,omitempty"`
  3133  	Relationship                  OAuthApplicationRelationship        `json:"relationship,omitempty"`
  3134  	RequireClientAuthentication   bool                                `json:"requireClientAuthentication"`
  3135  	RequireRegistration           bool                                `json:"requireRegistration"`
  3136  	ScopeHandlingPolicy           OAuthScopeHandlingPolicy            `json:"scopeHandlingPolicy,omitempty"`
  3137  	UnknownScopePolicy            UnknownScopePolicy                  `json:"unknownScopePolicy,omitempty"`
  3138  }
  3139  
  3140  /**
  3141   * @author Daniel DeGroff
  3142   */
  3143  type TwoFactorSendRequest struct {
  3144  	ApplicationId string `json:"applicationId,omitempty"`
  3145  	Email         string `json:"email,omitempty"`
  3146  	Method        string `json:"method,omitempty"`
  3147  	MethodId      string `json:"methodId,omitempty"`
  3148  	MobilePhone   string `json:"mobilePhone,omitempty"`
  3149  	UserId        string `json:"userId,omitempty"`
  3150  }
  3151  
  3152  /**
  3153   * Search criteria for Applications
  3154   *
  3155   * @author Spencer Witt
  3156   */
  3157  type ApplicationSearchCriteria struct {
  3158  	BaseSearchCriteria
  3159  	Name     string      `json:"name,omitempty"`
  3160  	State    ObjectState `json:"state,omitempty"`
  3161  	TenantId string      `json:"tenantId,omitempty"`
  3162  }
  3163  
  3164  /**
  3165   * Models the User Registration Verified Event.
  3166   *
  3167   * @author Trevor Smith
  3168   */
  3169  type UserRegistrationVerifiedEvent struct {
  3170  	BaseEvent
  3171  	ApplicationId string           `json:"applicationId,omitempty"`
  3172  	Registration  UserRegistration `json:"registration,omitempty"`
  3173  	User          User             `json:"user,omitempty"`
  3174  }
  3175  
  3176  /**
  3177   * A Message Template Request to the API
  3178   *
  3179   * @author Michael Sleevi
  3180   */
  3181  type MessageTemplateRequest struct {
  3182  	MessageTemplate MessageTemplate `json:"messageTemplate,omitempty"`
  3183  }
  3184  
  3185  /**
  3186   * Entity Type API request object.
  3187   *
  3188   * @author Brian Pontarelli
  3189   */
  3190  type EntityTypeRequest struct {
  3191  	EntityType EntityType           `json:"entityType,omitempty"`
  3192  	Permission EntityTypePermission `json:"permission,omitempty"`
  3193  }
  3194  
  3195  /**
  3196   * A marker interface indicating this event cannot be made transactional.
  3197   *
  3198   * @author Daniel DeGroff
  3199   */
  3200  type NonTransactionalEvent struct {
  3201  }
  3202  
  3203  /**
  3204   * Models the User Create Event.
  3205   *
  3206   * @author Brian Pontarelli
  3207   */
  3208  type UserCreateEvent struct {
  3209  	BaseEvent
  3210  	User User `json:"user,omitempty"`
  3211  }
  3212  
  3213  /**
  3214   * @author Daniel DeGroff
  3215   */
  3216  type ApplicationMultiFactorConfiguration struct {
  3217  	Email       MultiFactorEmailTemplate          `json:"email,omitempty"`
  3218  	LoginPolicy MultiFactorLoginPolicy            `json:"loginPolicy,omitempty"`
  3219  	Sms         MultiFactorSMSTemplate            `json:"sms,omitempty"`
  3220  	TrustPolicy ApplicationMultiFactorTrustPolicy `json:"trustPolicy,omitempty"`
  3221  }
  3222  
  3223  /**
  3224   * @author Daniel DeGroff
  3225   */
  3226  type FormType string
  3227  
  3228  func (e FormType) String() string {
  3229  	return string(e)
  3230  }
  3231  
  3232  const (
  3233  	FormType_Registration      FormType = "registration"
  3234  	FormType_AdminRegistration FormType = "adminRegistration"
  3235  	FormType_AdminUser         FormType = "adminUser"
  3236  	FormType_SelfServiceUser   FormType = "selfServiceUser"
  3237  )
  3238  
  3239  /**
  3240   * @author Brian Pontarelli
  3241   */
  3242  type TwoFactorRequest struct {
  3243  	BaseEventRequest
  3244  	ApplicationId       string `json:"applicationId,omitempty"`
  3245  	AuthenticatorId     string `json:"authenticatorId,omitempty"`
  3246  	Code                string `json:"code,omitempty"`
  3247  	Email               string `json:"email,omitempty"`
  3248  	Method              string `json:"method,omitempty"`
  3249  	MobilePhone         string `json:"mobilePhone,omitempty"`
  3250  	Secret              string `json:"secret,omitempty"`
  3251  	SecretBase32Encoded string `json:"secretBase32Encoded,omitempty"`
  3252  	TwoFactorId         string `json:"twoFactorId,omitempty"`
  3253  }
  3254  
  3255  /**
  3256   * User Action Reason API request object.
  3257   *
  3258   * @author Brian Pontarelli
  3259   */
  3260  type UserActionReasonRequest struct {
  3261  	UserActionReason UserActionReason `json:"userActionReason,omitempty"`
  3262  }
  3263  
  3264  /**
  3265   * Domain for a public key, key pair or an HMAC secret. This is used by KeyMaster to manage keys for JWTs, SAML, etc.
  3266   *
  3267   * @author Brian Pontarelli
  3268   */
  3269  type Key struct {
  3270  	Algorithm              KeyAlgorithm           `json:"algorithm,omitempty"`
  3271  	Certificate            string                 `json:"certificate,omitempty"`
  3272  	CertificateInformation CertificateInformation `json:"certificateInformation,omitempty"`
  3273  	ExpirationInstant      int64                  `json:"expirationInstant,omitempty"`
  3274  	HasPrivateKey          bool                   `json:"hasPrivateKey"`
  3275  	Id                     string                 `json:"id,omitempty"`
  3276  	InsertInstant          int64                  `json:"insertInstant,omitempty"`
  3277  	Issuer                 string                 `json:"issuer,omitempty"`
  3278  	Kid                    string                 `json:"kid,omitempty"`
  3279  	LastUpdateInstant      int64                  `json:"lastUpdateInstant,omitempty"`
  3280  	Length                 int                    `json:"length,omitempty"`
  3281  	Name                   string                 `json:"name,omitempty"`
  3282  	PrivateKey             string                 `json:"privateKey,omitempty"`
  3283  	PublicKey              string                 `json:"publicKey,omitempty"`
  3284  	Secret                 string                 `json:"secret,omitempty"`
  3285  	Type                   KeyType                `json:"type,omitempty"`
  3286  }
  3287  
  3288  /**
  3289   * Models the User Bulk Create Event.
  3290   *
  3291   * @author Brian Pontarelli
  3292   */
  3293  type UserBulkCreateEvent struct {
  3294  	BaseEvent
  3295  	Users []User `json:"users,omitempty"`
  3296  }
  3297  
  3298  /**
  3299   * @author Daniel DeGroff
  3300   */
  3301  type IdentityProviderOauth2Configuration struct {
  3302  	AuthorizationEndpoint      string                     `json:"authorization_endpoint,omitempty"`
  3303  	ClientId                   string                     `json:"client_id,omitempty"`
  3304  	ClientSecret               string                     `json:"client_secret,omitempty"`
  3305  	ClientAuthenticationMethod ClientAuthenticationMethod `json:"clientAuthenticationMethod,omitempty"`
  3306  	EmailClaim                 string                     `json:"emailClaim,omitempty"`
  3307  	EmailVerifiedClaim         string                     `json:"emailVerifiedClaim,omitempty"`
  3308  	Issuer                     string                     `json:"issuer,omitempty"`
  3309  	Scope                      string                     `json:"scope,omitempty"`
  3310  	TokenEndpoint              string                     `json:"token_endpoint,omitempty"`
  3311  	UniqueIdClaim              string                     `json:"uniqueIdClaim,omitempty"`
  3312  	UserinfoEndpoint           string                     `json:"userinfo_endpoint,omitempty"`
  3313  	UsernameClaim              string                     `json:"usernameClaim,omitempty"`
  3314  }
  3315  
  3316  /**
  3317   * @author Daniel DeGroff
  3318   */
  3319  type RefreshTokenRevocationPolicy struct {
  3320  	OnLoginPrevented    bool `json:"onLoginPrevented"`
  3321  	OnMultiFactorEnable bool `json:"onMultiFactorEnable"`
  3322  	OnPasswordChanged   bool `json:"onPasswordChanged"`
  3323  }
  3324  
  3325  /**
  3326   * @author Daniel DeGroff
  3327   */
  3328  type MinimumPasswordAge struct {
  3329  	Enableable
  3330  	Seconds int `json:"seconds,omitempty"`
  3331  }
  3332  
  3333  /**
  3334   * Authentication key response object.
  3335   *
  3336   * @author Sanjay
  3337   */
  3338  type APIKeyResponse struct {
  3339  	BaseHTTPResponse
  3340  	ApiKey APIKey `json:"apiKey,omitempty"`
  3341  }
  3342  
  3343  func (b *APIKeyResponse) SetStatus(status int) {
  3344  	b.StatusCode = status
  3345  }
  3346  
  3347  /**
  3348   * Used to indicate what type of attestation was included in the authenticator response for a given WebAuthn credential at the time it was created
  3349   *
  3350   * @author Spencer Witt
  3351   */
  3352  type AttestationType string
  3353  
  3354  func (e AttestationType) String() string {
  3355  	return string(e)
  3356  }
  3357  
  3358  const (
  3359  	AttestationType_Basic           AttestationType = "basic"
  3360  	AttestationType_Self            AttestationType = "self"
  3361  	AttestationType_AttestationCa   AttestationType = "attestationCa"
  3362  	AttestationType_AnonymizationCa AttestationType = "anonymizationCa"
  3363  	AttestationType_None            AttestationType = "none"
  3364  )
  3365  
  3366  /**
  3367   * Models the Group Update Event.
  3368   *
  3369   * @author Daniel DeGroff
  3370   */
  3371  type GroupUpdateEvent struct {
  3372  	BaseEvent
  3373  	Group    Group `json:"group,omitempty"`
  3374  	Original Group `json:"original,omitempty"`
  3375  }
  3376  
  3377  /**
  3378   * Models an entity that a user can be granted permissions to. Or an entity that can be granted permissions to another entity.
  3379   *
  3380   * @author Brian Pontarelli
  3381   */
  3382  type Entity struct {
  3383  	ClientId          string                 `json:"clientId,omitempty"`
  3384  	ClientSecret      string                 `json:"clientSecret,omitempty"`
  3385  	Data              map[string]interface{} `json:"data,omitempty"`
  3386  	Id                string                 `json:"id,omitempty"`
  3387  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  3388  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  3389  	Name              string                 `json:"name,omitempty"`
  3390  	ParentId          string                 `json:"parentId,omitempty"`
  3391  	TenantId          string                 `json:"tenantId,omitempty"`
  3392  	Type              EntityType             `json:"type,omitempty"`
  3393  }
  3394  
  3395  type KeyType string
  3396  
  3397  func (e KeyType) String() string {
  3398  	return string(e)
  3399  }
  3400  
  3401  const (
  3402  	KeyType_EC   KeyType = "EC"
  3403  	KeyType_RSA  KeyType = "RSA"
  3404  	KeyType_HMAC KeyType = "HMAC"
  3405  )
  3406  
  3407  /**
  3408   * @author Brian Pontarelli
  3409   */
  3410  type EventLogSearchRequest struct {
  3411  	Search EventLogSearchCriteria `json:"search,omitempty"`
  3412  }
  3413  
  3414  /**
  3415   * The types of connectors. This enum is stored as an ordinal on the <code>identities</code> table, order must be maintained.
  3416   *
  3417   * @author Trevor Smith
  3418   */
  3419  type ConnectorType string
  3420  
  3421  func (e ConnectorType) String() string {
  3422  	return string(e)
  3423  }
  3424  
  3425  const (
  3426  	ConnectorType_FusionAuth ConnectorType = "FusionAuth"
  3427  	ConnectorType_Generic    ConnectorType = "Generic"
  3428  	ConnectorType_LDAP       ConnectorType = "LDAP"
  3429  )
  3430  
  3431  /**
  3432   * Import request.
  3433   *
  3434   * @author Brian Pontarelli
  3435   */
  3436  type ImportRequest struct {
  3437  	BaseEventRequest
  3438  	EncryptionScheme      string `json:"encryptionScheme,omitempty"`
  3439  	Factor                int    `json:"factor,omitempty"`
  3440  	Users                 []User `json:"users,omitempty"`
  3441  	ValidateDbConstraints bool   `json:"validateDbConstraints"`
  3442  }
  3443  
  3444  /**
  3445   * @author Daniel DeGroff
  3446   */
  3447  type FormFieldValidator struct {
  3448  	Enableable
  3449  	Expression string `json:"expression,omitempty"`
  3450  }
  3451  
  3452  /**
  3453   * Search request for entity grants.
  3454   *
  3455   * @author Brian Pontarelli
  3456   */
  3457  type EntityGrantSearchRequest struct {
  3458  	Search EntityGrantSearchCriteria `json:"search,omitempty"`
  3459  }
  3460  
  3461  /**
  3462   * Webhook search response
  3463   *
  3464   * @author Spencer Witt
  3465   */
  3466  type WebhookSearchResponse struct {
  3467  	BaseHTTPResponse
  3468  	Total    int64     `json:"total,omitempty"`
  3469  	Webhooks []Webhook `json:"webhooks,omitempty"`
  3470  }
  3471  
  3472  func (b *WebhookSearchResponse) SetStatus(status int) {
  3473  	b.StatusCode = status
  3474  }
  3475  
  3476  /**
  3477   * @author Daniel DeGroff
  3478   */
  3479  type AppleIdentityProvider struct {
  3480  	BaseIdentityProvider
  3481  	BundleId   string `json:"bundleId,omitempty"`
  3482  	ButtonText string `json:"buttonText,omitempty"`
  3483  	KeyId      string `json:"keyId,omitempty"`
  3484  	Scope      string `json:"scope,omitempty"`
  3485  	ServicesId string `json:"servicesId,omitempty"`
  3486  	TeamId     string `json:"teamId,omitempty"`
  3487  }
  3488  
  3489  /**
  3490   * User registration information for a single application.
  3491   *
  3492   * @author Brian Pontarelli
  3493   */
  3494  type UserRegistration struct {
  3495  	ApplicationId       string                 `json:"applicationId,omitempty"`
  3496  	AuthenticationToken string                 `json:"authenticationToken,omitempty"`
  3497  	CleanSpeakId        string                 `json:"cleanSpeakId,omitempty"`
  3498  	Data                map[string]interface{} `json:"data,omitempty"`
  3499  	Id                  string                 `json:"id,omitempty"`
  3500  	InsertInstant       int64                  `json:"insertInstant,omitempty"`
  3501  	LastLoginInstant    int64                  `json:"lastLoginInstant,omitempty"`
  3502  	LastUpdateInstant   int64                  `json:"lastUpdateInstant,omitempty"`
  3503  	PreferredLanguages  []string               `json:"preferredLanguages,omitempty"`
  3504  	Roles               []string               `json:"roles,omitempty"`
  3505  	Timezone            string                 `json:"timezone,omitempty"`
  3506  	Tokens              map[string]string      `json:"tokens,omitempty"`
  3507  	Username            string                 `json:"username,omitempty"`
  3508  	UsernameStatus      ContentStatus          `json:"usernameStatus,omitempty"`
  3509  	Verified            bool                   `json:"verified"`
  3510  	VerifiedInstant     int64                  `json:"verifiedInstant,omitempty"`
  3511  }
  3512  
  3513  /**
  3514   * @author Daniel DeGroff
  3515   */
  3516  type SecureIdentity struct {
  3517  	BreachedPasswordLastCheckedInstant int64                  `json:"breachedPasswordLastCheckedInstant,omitempty"`
  3518  	BreachedPasswordStatus             BreachedPasswordStatus `json:"breachedPasswordStatus,omitempty"`
  3519  	ConnectorId                        string                 `json:"connectorId,omitempty"`
  3520  	EncryptionScheme                   string                 `json:"encryptionScheme,omitempty"`
  3521  	Factor                             int                    `json:"factor,omitempty"`
  3522  	Id                                 string                 `json:"id,omitempty"`
  3523  	LastLoginInstant                   int64                  `json:"lastLoginInstant,omitempty"`
  3524  	Password                           string                 `json:"password,omitempty"`
  3525  	PasswordChangeReason               ChangePasswordReason   `json:"passwordChangeReason,omitempty"`
  3526  	PasswordChangeRequired             bool                   `json:"passwordChangeRequired"`
  3527  	PasswordLastUpdateInstant          int64                  `json:"passwordLastUpdateInstant,omitempty"`
  3528  	Salt                               string                 `json:"salt,omitempty"`
  3529  	UniqueUsername                     string                 `json:"uniqueUsername,omitempty"`
  3530  	Username                           string                 `json:"username,omitempty"`
  3531  	UsernameStatus                     ContentStatus          `json:"usernameStatus,omitempty"`
  3532  	Verified                           bool                   `json:"verified"`
  3533  	VerifiedInstant                    int64                  `json:"verifiedInstant,omitempty"`
  3534  }
  3535  
  3536  /**
  3537   * @author Daniel DeGroff
  3538   */
  3539  type ApplicationExternalIdentifierConfiguration struct {
  3540  	TwoFactorTrustIdTimeToLiveInSeconds int `json:"twoFactorTrustIdTimeToLiveInSeconds,omitempty"`
  3541  }
  3542  
  3543  /**
  3544   * Entity Type API response object.
  3545   *
  3546   * @author Brian Pontarelli
  3547   */
  3548  type EntityTypeResponse struct {
  3549  	BaseHTTPResponse
  3550  	EntityType  EntityType           `json:"entityType,omitempty"`
  3551  	EntityTypes []EntityType         `json:"entityTypes,omitempty"`
  3552  	Permission  EntityTypePermission `json:"permission,omitempty"`
  3553  }
  3554  
  3555  func (b *EntityTypeResponse) SetStatus(status int) {
  3556  	b.StatusCode = status
  3557  }
  3558  
  3559  type LoginRecordConfiguration struct {
  3560  	Delete DeleteConfiguration `json:"delete,omitempty"`
  3561  }
  3562  
  3563  /**
  3564   * @author Daniel DeGroff
  3565   */
  3566  type VerifyEmailResponse struct {
  3567  	BaseHTTPResponse
  3568  	OneTimeCode    string `json:"oneTimeCode,omitempty"`
  3569  	VerificationId string `json:"verificationId,omitempty"`
  3570  }
  3571  
  3572  func (b *VerifyEmailResponse) SetStatus(status int) {
  3573  	b.StatusCode = status
  3574  }
  3575  
  3576  /**
  3577   * @author Brian Pontarelli
  3578   */
  3579  type EventConfiguration struct {
  3580  	Events map[EventType]EventConfigurationData `json:"events,omitempty"`
  3581  }
  3582  
  3583  /**
  3584   * Models an event where a user is being updated and tries to use an "in-use" login Id (email or username).
  3585   *
  3586   * @author Daniel DeGroff
  3587   */
  3588  type UserLoginIdDuplicateOnUpdateEvent struct {
  3589  	UserLoginIdDuplicateOnCreateEvent
  3590  }
  3591  
  3592  /**
  3593   * Models the Group Member Remove Complete Event.
  3594   *
  3595   * @author Daniel DeGroff
  3596   */
  3597  type GroupMemberRemoveCompleteEvent struct {
  3598  	BaseEvent
  3599  	Group   Group         `json:"group,omitempty"`
  3600  	Members []GroupMember `json:"members,omitempty"`
  3601  }
  3602  
  3603  type EventLogConfiguration struct {
  3604  	NumberToRetain int `json:"numberToRetain,omitempty"`
  3605  }
  3606  
  3607  /**
  3608   * @author Daniel DeGroff
  3609   */
  3610  type IdentityProviderResponse struct {
  3611  	BaseHTTPResponse
  3612  	IdentityProvider  BaseIdentityProvider   `json:"identityProvider,omitempty"`
  3613  	IdentityProviders []BaseIdentityProvider `json:"identityProviders,omitempty"`
  3614  }
  3615  
  3616  func (b *IdentityProviderResponse) SetStatus(status int) {
  3617  	b.StatusCode = status
  3618  }
  3619  
  3620  /**
  3621   * Search request for webhooks
  3622   *
  3623   * @author Spencer Witt
  3624   */
  3625  type WebhookSearchRequest struct {
  3626  	Search WebhookSearchCriteria `json:"search,omitempty"`
  3627  }
  3628  
  3629  /**
  3630   * Models the Group Member Add Complete Event.
  3631   *
  3632   * @author Daniel DeGroff
  3633   */
  3634  type GroupMemberAddCompleteEvent struct {
  3635  	BaseEvent
  3636  	Group   Group         `json:"group,omitempty"`
  3637  	Members []GroupMember `json:"members,omitempty"`
  3638  }
  3639  
  3640  /**
  3641   * @author Daniel DeGroff
  3642   */
  3643  type MultiFactorLoginPolicy string
  3644  
  3645  func (e MultiFactorLoginPolicy) String() string {
  3646  	return string(e)
  3647  }
  3648  
  3649  const (
  3650  	MultiFactorLoginPolicy_Disabled MultiFactorLoginPolicy = "Disabled"
  3651  	MultiFactorLoginPolicy_Enabled  MultiFactorLoginPolicy = "Enabled"
  3652  	MultiFactorLoginPolicy_Required MultiFactorLoginPolicy = "Required"
  3653  )
  3654  
  3655  /**
  3656   * @author Daniel DeGroff
  3657   */
  3658  type PasswordlessStartRequest struct {
  3659  	ApplicationId string                 `json:"applicationId,omitempty"`
  3660  	LoginId       string                 `json:"loginId,omitempty"`
  3661  	State         map[string]interface{} `json:"state,omitempty"`
  3662  }
  3663  
  3664  /**
  3665   * @author Daniel DeGroff
  3666   */
  3667  type ExternalIdentifierConfiguration struct {
  3668  	AuthorizationGrantIdTimeToLiveInSeconds            int                          `json:"authorizationGrantIdTimeToLiveInSeconds,omitempty"`
  3669  	ChangePasswordIdGenerator                          SecureGeneratorConfiguration `json:"changePasswordIdGenerator,omitempty"`
  3670  	ChangePasswordIdTimeToLiveInSeconds                int                          `json:"changePasswordIdTimeToLiveInSeconds,omitempty"`
  3671  	DeviceCodeTimeToLiveInSeconds                      int                          `json:"deviceCodeTimeToLiveInSeconds,omitempty"`
  3672  	DeviceUserCodeIdGenerator                          SecureGeneratorConfiguration `json:"deviceUserCodeIdGenerator,omitempty"`
  3673  	EmailVerificationIdGenerator                       SecureGeneratorConfiguration `json:"emailVerificationIdGenerator,omitempty"`
  3674  	EmailVerificationIdTimeToLiveInSeconds             int                          `json:"emailVerificationIdTimeToLiveInSeconds,omitempty"`
  3675  	EmailVerificationOneTimeCodeGenerator              SecureGeneratorConfiguration `json:"emailVerificationOneTimeCodeGenerator,omitempty"`
  3676  	ExternalAuthenticationIdTimeToLiveInSeconds        int                          `json:"externalAuthenticationIdTimeToLiveInSeconds,omitempty"`
  3677  	OneTimePasswordTimeToLiveInSeconds                 int                          `json:"oneTimePasswordTimeToLiveInSeconds,omitempty"`
  3678  	PasswordlessLoginGenerator                         SecureGeneratorConfiguration `json:"passwordlessLoginGenerator,omitempty"`
  3679  	PasswordlessLoginTimeToLiveInSeconds               int                          `json:"passwordlessLoginTimeToLiveInSeconds,omitempty"`
  3680  	PendingAccountLinkTimeToLiveInSeconds              int                          `json:"pendingAccountLinkTimeToLiveInSeconds,omitempty"`
  3681  	RegistrationVerificationIdGenerator                SecureGeneratorConfiguration `json:"registrationVerificationIdGenerator,omitempty"`
  3682  	RegistrationVerificationIdTimeToLiveInSeconds      int                          `json:"registrationVerificationIdTimeToLiveInSeconds,omitempty"`
  3683  	RegistrationVerificationOneTimeCodeGenerator       SecureGeneratorConfiguration `json:"registrationVerificationOneTimeCodeGenerator,omitempty"`
  3684  	RememberOAuthScopeConsentChoiceTimeToLiveInSeconds int                          `json:"rememberOAuthScopeConsentChoiceTimeToLiveInSeconds,omitempty"`
  3685  	Samlv2AuthNRequestIdTimeToLiveInSeconds            int                          `json:"samlv2AuthNRequestIdTimeToLiveInSeconds,omitempty"`
  3686  	SetupPasswordIdGenerator                           SecureGeneratorConfiguration `json:"setupPasswordIdGenerator,omitempty"`
  3687  	SetupPasswordIdTimeToLiveInSeconds                 int                          `json:"setupPasswordIdTimeToLiveInSeconds,omitempty"`
  3688  	TrustTokenTimeToLiveInSeconds                      int                          `json:"trustTokenTimeToLiveInSeconds,omitempty"`
  3689  	TwoFactorIdTimeToLiveInSeconds                     int                          `json:"twoFactorIdTimeToLiveInSeconds,omitempty"`
  3690  	TwoFactorOneTimeCodeIdGenerator                    SecureGeneratorConfiguration `json:"twoFactorOneTimeCodeIdGenerator,omitempty"`
  3691  	TwoFactorOneTimeCodeIdTimeToLiveInSeconds          int                          `json:"twoFactorOneTimeCodeIdTimeToLiveInSeconds,omitempty"`
  3692  	TwoFactorTrustIdTimeToLiveInSeconds                int                          `json:"twoFactorTrustIdTimeToLiveInSeconds,omitempty"`
  3693  	WebAuthnAuthenticationChallengeTimeToLiveInSeconds int                          `json:"webAuthnAuthenticationChallengeTimeToLiveInSeconds,omitempty"`
  3694  	WebAuthnRegistrationChallengeTimeToLiveInSeconds   int                          `json:"webAuthnRegistrationChallengeTimeToLiveInSeconds,omitempty"`
  3695  }
  3696  
  3697  /**
  3698   * @author Daniel DeGroff
  3699   */
  3700  type LoginRecordExportRequest struct {
  3701  	BaseExportRequest
  3702  	Criteria LoginRecordSearchCriteria `json:"criteria,omitempty"`
  3703  }
  3704  
  3705  /**
  3706   * Describes the <a href="https://www.w3.org/TR/webauthn-2/#authenticator-attachment-modality">authenticator attachment modality</a>.
  3707   *
  3708   * @author Spencer Witt
  3709   */
  3710  type AuthenticatorAttachment string
  3711  
  3712  func (e AuthenticatorAttachment) String() string {
  3713  	return string(e)
  3714  }
  3715  
  3716  const (
  3717  	AuthenticatorAttachment_Platform      AuthenticatorAttachment = "platform"
  3718  	AuthenticatorAttachment_CrossPlatform AuthenticatorAttachment = "crossPlatform"
  3719  )
  3720  
  3721  /**
  3722   * Email template response.
  3723   *
  3724   * @author Brian Pontarelli
  3725   */
  3726  type EmailTemplateResponse struct {
  3727  	BaseHTTPResponse
  3728  	EmailTemplate  EmailTemplate   `json:"emailTemplate,omitempty"`
  3729  	EmailTemplates []EmailTemplate `json:"emailTemplates,omitempty"`
  3730  }
  3731  
  3732  func (b *EmailTemplateResponse) SetStatus(status int) {
  3733  	b.StatusCode = status
  3734  }
  3735  
  3736  type TenantOAuth2Configuration struct {
  3737  	ClientCredentialsAccessTokenPopulateLambdaId string `json:"clientCredentialsAccessTokenPopulateLambdaId,omitempty"`
  3738  }
  3739  
  3740  /**
  3741   * Request to register a new public key with WebAuthn
  3742   *
  3743   * @author Spencer Witt
  3744   */
  3745  type WebAuthnPublicKeyRegistrationRequest struct {
  3746  	ClientExtensionResults WebAuthnExtensionsClientOutputs           `json:"clientExtensionResults,omitempty"`
  3747  	Id                     string                                    `json:"id,omitempty"`
  3748  	Response               WebAuthnAuthenticatorRegistrationResponse `json:"response,omitempty"`
  3749  	RpId                   string                                    `json:"rpId,omitempty"`
  3750  	Transports             []string                                  `json:"transports,omitempty"`
  3751  	Type                   string                                    `json:"type,omitempty"`
  3752  }
  3753  
  3754  /**
  3755   * User API response object.
  3756   *
  3757   * @author Brian Pontarelli
  3758   */
  3759  type UserResponse struct {
  3760  	BaseHTTPResponse
  3761  	EmailVerificationId                  string            `json:"emailVerificationId,omitempty"`
  3762  	EmailVerificationOneTimeCode         string            `json:"emailVerificationOneTimeCode,omitempty"`
  3763  	RegistrationVerificationIds          map[string]string `json:"registrationVerificationIds,omitempty"`
  3764  	RegistrationVerificationOneTimeCodes map[string]string `json:"registrationVerificationOneTimeCodes,omitempty"`
  3765  	Token                                string            `json:"token,omitempty"`
  3766  	TokenExpirationInstant               int64             `json:"tokenExpirationInstant,omitempty"`
  3767  	User                                 User              `json:"user,omitempty"`
  3768  }
  3769  
  3770  func (b *UserResponse) SetStatus(status int) {
  3771  	b.StatusCode = status
  3772  }
  3773  
  3774  /**
  3775   * @author Daniel DeGroff
  3776   */
  3777  type DeviceInfo struct {
  3778  	Description         string `json:"description,omitempty"`
  3779  	LastAccessedAddress string `json:"lastAccessedAddress,omitempty"`
  3780  	LastAccessedInstant int64  `json:"lastAccessedInstant,omitempty"`
  3781  	Name                string `json:"name,omitempty"`
  3782  	Type                string `json:"type,omitempty"`
  3783  }
  3784  
  3785  /**
  3786   * @author Michael Sleevi
  3787   */
  3788  type SMSMessageTemplate struct {
  3789  	MessageTemplate
  3790  	DefaultTemplate    string            `json:"defaultTemplate,omitempty"`
  3791  	LocalizedTemplates map[string]string `json:"localizedTemplates,omitempty"`
  3792  }
  3793  
  3794  /**
  3795   * User Action Reason API response object.
  3796   *
  3797   * @author Brian Pontarelli
  3798   */
  3799  type UserActionReasonResponse struct {
  3800  	BaseHTTPResponse
  3801  	UserActionReason  UserActionReason   `json:"userActionReason,omitempty"`
  3802  	UserActionReasons []UserActionReason `json:"userActionReasons,omitempty"`
  3803  }
  3804  
  3805  func (b *UserActionReasonResponse) SetStatus(status int) {
  3806  	b.StatusCode = status
  3807  }
  3808  
  3809  /**
  3810   * @author Daniel DeGroff
  3811   */
  3812  type UserTwoFactorConfiguration struct {
  3813  	Methods       []TwoFactorMethod `json:"methods,omitempty"`
  3814  	RecoveryCodes []string          `json:"recoveryCodes,omitempty"`
  3815  }
  3816  
  3817  /**
  3818   * @author Daniel DeGroff
  3819   */
  3820  type PendingIdPLink struct {
  3821  	DisplayName                         string                              `json:"displayName,omitempty"`
  3822  	Email                               string                              `json:"email,omitempty"`
  3823  	IdentityProviderId                  string                              `json:"identityProviderId,omitempty"`
  3824  	IdentityProviderLinks               []IdentityProviderLink              `json:"identityProviderLinks,omitempty"`
  3825  	IdentityProviderName                string                              `json:"identityProviderName,omitempty"`
  3826  	IdentityProviderTenantConfiguration IdentityProviderTenantConfiguration `json:"identityProviderTenantConfiguration,omitempty"`
  3827  	IdentityProviderType                IdentityProviderType                `json:"identityProviderType,omitempty"`
  3828  	IdentityProviderUserId              string                              `json:"identityProviderUserId,omitempty"`
  3829  	User                                User                                `json:"user,omitempty"`
  3830  	Username                            string                              `json:"username,omitempty"`
  3831  }
  3832  
  3833  /**
  3834   * @author Daniel DeGroff
  3835   */
  3836  type JWKSResponse struct {
  3837  	BaseHTTPResponse
  3838  	Keys []JSONWebKey `json:"keys,omitempty"`
  3839  }
  3840  
  3841  func (b *JWKSResponse) SetStatus(status int) {
  3842  	b.StatusCode = status
  3843  }
  3844  
  3845  /**
  3846   * The Integration Response
  3847   *
  3848   * @author Daniel DeGroff
  3849   */
  3850  type IntegrationResponse struct {
  3851  	BaseHTTPResponse
  3852  	Integrations Integrations `json:"integrations,omitempty"`
  3853  }
  3854  
  3855  func (b *IntegrationResponse) SetStatus(status int) {
  3856  	b.StatusCode = status
  3857  }
  3858  
  3859  /**
  3860   * API response for starting a WebAuthn registration ceremony
  3861   *
  3862   * @author Spencer Witt
  3863   */
  3864  type WebAuthnRegisterStartResponse struct {
  3865  	BaseHTTPResponse
  3866  	Options PublicKeyCredentialCreationOptions `json:"options,omitempty"`
  3867  }
  3868  
  3869  func (b *WebAuthnRegisterStartResponse) SetStatus(status int) {
  3870  	b.StatusCode = status
  3871  }
  3872  
  3873  /**
  3874   * @author Brett Pontarelli
  3875   */
  3876  type TenantCaptchaConfiguration struct {
  3877  	Enableable
  3878  	CaptchaMethod CaptchaMethod `json:"captchaMethod,omitempty"`
  3879  	SecretKey     string        `json:"secretKey,omitempty"`
  3880  	SiteKey       string        `json:"siteKey,omitempty"`
  3881  	Threshold     float64       `json:"threshold,omitempty"`
  3882  }
  3883  
  3884  /**
  3885   * The Application API response.
  3886   *
  3887   * @author Brian Pontarelli
  3888   */
  3889  type ApplicationResponse struct {
  3890  	BaseHTTPResponse
  3891  	Application  Application     `json:"application,omitempty"`
  3892  	Applications []Application   `json:"applications,omitempty"`
  3893  	Role         ApplicationRole `json:"role,omitempty"`
  3894  }
  3895  
  3896  func (b *ApplicationResponse) SetStatus(status int) {
  3897  	b.StatusCode = status
  3898  }
  3899  
  3900  /**
  3901   * COSE Elliptic Curve identifier to determine which elliptic curve to use with a given key
  3902   *
  3903   * @author Spencer Witt
  3904   */
  3905  type CoseEllipticCurve string
  3906  
  3907  func (e CoseEllipticCurve) String() string {
  3908  	return string(e)
  3909  }
  3910  
  3911  const (
  3912  	CoseEllipticCurve_Reserved  CoseEllipticCurve = "Reserved"
  3913  	CoseEllipticCurve_P256      CoseEllipticCurve = "P256"
  3914  	CoseEllipticCurve_P384      CoseEllipticCurve = "P384"
  3915  	CoseEllipticCurve_P521      CoseEllipticCurve = "P521"
  3916  	CoseEllipticCurve_X25519    CoseEllipticCurve = "X25519"
  3917  	CoseEllipticCurve_X448      CoseEllipticCurve = "X448"
  3918  	CoseEllipticCurve_Ed25519   CoseEllipticCurve = "Ed25519"
  3919  	CoseEllipticCurve_Ed448     CoseEllipticCurve = "Ed448"
  3920  	CoseEllipticCurve_Secp256k1 CoseEllipticCurve = "Secp256k1"
  3921  )
  3922  
  3923  type LoginIdType string
  3924  
  3925  func (e LoginIdType) String() string {
  3926  	return string(e)
  3927  }
  3928  
  3929  const (
  3930  	LoginIdType_Email    LoginIdType = "email"
  3931  	LoginIdType_Username LoginIdType = "username"
  3932  )
  3933  
  3934  /**
  3935   * @author Daniel DeGroff
  3936   */
  3937  type OpenIdConnectIdentityProvider struct {
  3938  	BaseIdentityProvider
  3939  	ButtonImageURL string                              `json:"buttonImageURL,omitempty"`
  3940  	ButtonText     string                              `json:"buttonText,omitempty"`
  3941  	Domains        []string                            `json:"domains,omitempty"`
  3942  	Oauth2         IdentityProviderOauth2Configuration `json:"oauth2,omitempty"`
  3943  	PostRequest    bool                                `json:"postRequest"`
  3944  }
  3945  
  3946  type UIConfiguration struct {
  3947  	HeaderColor   string `json:"headerColor,omitempty"`
  3948  	LogoURL       string `json:"logoURL,omitempty"`
  3949  	MenuFontColor string `json:"menuFontColor,omitempty"`
  3950  }
  3951  
  3952  type RegistrationType string
  3953  
  3954  func (e RegistrationType) String() string {
  3955  	return string(e)
  3956  }
  3957  
  3958  const (
  3959  	RegistrationType_Basic    RegistrationType = "basic"
  3960  	RegistrationType_Advanced RegistrationType = "advanced"
  3961  )
  3962  
  3963  /**
  3964   * @author Brett Pontarelli
  3965   */
  3966  type XboxApplicationConfiguration struct {
  3967  	BaseIdentityProviderApplicationConfiguration
  3968  	ButtonText   string `json:"buttonText,omitempty"`
  3969  	ClientId     string `json:"client_id,omitempty"`
  3970  	ClientSecret string `json:"client_secret,omitempty"`
  3971  	Scope        string `json:"scope,omitempty"`
  3972  }
  3973  
  3974  /**
  3975   * Search criteria for Groups
  3976   *
  3977   * @author Daniel DeGroff
  3978   */
  3979  type GroupSearchCriteria struct {
  3980  	BaseSearchCriteria
  3981  	Name     string `json:"name,omitempty"`
  3982  	TenantId string `json:"tenantId,omitempty"`
  3983  }
  3984  
  3985  type MultiFactorSMSMethod struct {
  3986  	Enableable
  3987  	MessengerId string `json:"messengerId,omitempty"`
  3988  	TemplateId  string `json:"templateId,omitempty"`
  3989  }
  3990  
  3991  /**
  3992   * @author Brett Guy
  3993   */
  3994  type MessengerResponse struct {
  3995  	BaseHTTPResponse
  3996  	Messenger  BaseMessengerConfiguration   `json:"messenger,omitempty"`
  3997  	Messengers []BaseMessengerConfiguration `json:"messengers,omitempty"`
  3998  }
  3999  
  4000  func (b *MessengerResponse) SetStatus(status int) {
  4001  	b.StatusCode = status
  4002  }
  4003  
  4004  /**
  4005   * Models the User Login Failed Event.
  4006   *
  4007   * @author Daniel DeGroff
  4008   */
  4009  type UserLoginFailedEvent struct {
  4010  	BaseEvent
  4011  	ApplicationId      string `json:"applicationId,omitempty"`
  4012  	AuthenticationType string `json:"authenticationType,omitempty"`
  4013  	IpAddress          string `json:"ipAddress,omitempty"`
  4014  	User               User   `json:"user,omitempty"`
  4015  }
  4016  
  4017  /**
  4018   * @author Daniel DeGroff
  4019   */
  4020  type Tenant struct {
  4021  	AccessControlConfiguration        TenantAccessControlConfiguration  `json:"accessControlConfiguration,omitempty"`
  4022  	CaptchaConfiguration              TenantCaptchaConfiguration        `json:"captchaConfiguration,omitempty"`
  4023  	Configured                        bool                              `json:"configured"`
  4024  	ConnectorPolicies                 []ConnectorPolicy                 `json:"connectorPolicies,omitempty"`
  4025  	Data                              map[string]interface{}            `json:"data,omitempty"`
  4026  	EmailConfiguration                EmailConfiguration                `json:"emailConfiguration,omitempty"`
  4027  	EventConfiguration                EventConfiguration                `json:"eventConfiguration,omitempty"`
  4028  	ExternalIdentifierConfiguration   ExternalIdentifierConfiguration   `json:"externalIdentifierConfiguration,omitempty"`
  4029  	FailedAuthenticationConfiguration FailedAuthenticationConfiguration `json:"failedAuthenticationConfiguration,omitempty"`
  4030  	FamilyConfiguration               FamilyConfiguration               `json:"familyConfiguration,omitempty"`
  4031  	FormConfiguration                 TenantFormConfiguration           `json:"formConfiguration,omitempty"`
  4032  	HttpSessionMaxInactiveInterval    int                               `json:"httpSessionMaxInactiveInterval,omitempty"`
  4033  	Id                                string                            `json:"id,omitempty"`
  4034  	InsertInstant                     int64                             `json:"insertInstant,omitempty"`
  4035  	Issuer                            string                            `json:"issuer,omitempty"`
  4036  	JwtConfiguration                  JWTConfiguration                  `json:"jwtConfiguration,omitempty"`
  4037  	LambdaConfiguration               TenantLambdaConfiguration         `json:"lambdaConfiguration,omitempty"`
  4038  	LastUpdateInstant                 int64                             `json:"lastUpdateInstant,omitempty"`
  4039  	LoginConfiguration                TenantLoginConfiguration          `json:"loginConfiguration,omitempty"`
  4040  	LogoutURL                         string                            `json:"logoutURL,omitempty"`
  4041  	MaximumPasswordAge                MaximumPasswordAge                `json:"maximumPasswordAge,omitempty"`
  4042  	MinimumPasswordAge                MinimumPasswordAge                `json:"minimumPasswordAge,omitempty"`
  4043  	MultiFactorConfiguration          TenantMultiFactorConfiguration    `json:"multiFactorConfiguration,omitempty"`
  4044  	Name                              string                            `json:"name,omitempty"`
  4045  	OauthConfiguration                TenantOAuth2Configuration         `json:"oauthConfiguration,omitempty"`
  4046  	PasswordEncryptionConfiguration   PasswordEncryptionConfiguration   `json:"passwordEncryptionConfiguration,omitempty"`
  4047  	PasswordValidationRules           PasswordValidationRules           `json:"passwordValidationRules,omitempty"`
  4048  	RateLimitConfiguration            TenantRateLimitConfiguration      `json:"rateLimitConfiguration,omitempty"`
  4049  	RegistrationConfiguration         TenantRegistrationConfiguration   `json:"registrationConfiguration,omitempty"`
  4050  	ScimServerConfiguration           TenantSCIMServerConfiguration     `json:"scimServerConfiguration,omitempty"`
  4051  	SsoConfiguration                  TenantSSOConfiguration            `json:"ssoConfiguration,omitempty"`
  4052  	State                             ObjectState                       `json:"state,omitempty"`
  4053  	ThemeId                           string                            `json:"themeId,omitempty"`
  4054  	UserDeletePolicy                  TenantUserDeletePolicy            `json:"userDeletePolicy,omitempty"`
  4055  	UsernameConfiguration             TenantUsernameConfiguration       `json:"usernameConfiguration,omitempty"`
  4056  	WebAuthnConfiguration             TenantWebAuthnConfiguration       `json:"webAuthnConfiguration,omitempty"`
  4057  }
  4058  
  4059  /**
  4060   * Models the Group Member Update Complete Event.
  4061   *
  4062   * @author Daniel DeGroff
  4063   */
  4064  type GroupMemberUpdateCompleteEvent struct {
  4065  	BaseEvent
  4066  	Group   Group         `json:"group,omitempty"`
  4067  	Members []GroupMember `json:"members,omitempty"`
  4068  }
  4069  
  4070  // Do not require a setter for 'type', it is defined by the concrete class and is not mutable
  4071  type BaseMessengerConfiguration struct {
  4072  	Data              map[string]interface{} `json:"data,omitempty"`
  4073  	Debug             bool                   `json:"debug"`
  4074  	Id                string                 `json:"id,omitempty"`
  4075  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  4076  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  4077  	Name              string                 `json:"name,omitempty"`
  4078  	Transport         string                 `json:"transport,omitempty"`
  4079  	Type              MessengerType          `json:"type,omitempty"`
  4080  }
  4081  
  4082  /**
  4083   * @author Daniel DeGroff
  4084   */
  4085  type TwoFactorStartResponse struct {
  4086  	BaseHTTPResponse
  4087  	Code        string            `json:"code,omitempty"`
  4088  	Methods     []TwoFactorMethod `json:"methods,omitempty"`
  4089  	TwoFactorId string            `json:"twoFactorId,omitempty"`
  4090  }
  4091  
  4092  func (b *TwoFactorStartResponse) SetStatus(status int) {
  4093  	b.StatusCode = status
  4094  }
  4095  
  4096  type PasswordlessConfiguration struct {
  4097  	Enableable
  4098  }
  4099  
  4100  /**
  4101   * Search request for entity grants.
  4102   *
  4103   * @author Brian Pontarelli
  4104   */
  4105  type EntityGrantSearchResponse struct {
  4106  	BaseHTTPResponse
  4107  	Grants []EntityGrant `json:"grants,omitempty"`
  4108  	Total  int64         `json:"total,omitempty"`
  4109  }
  4110  
  4111  func (b *EntityGrantSearchResponse) SetStatus(status int) {
  4112  	b.StatusCode = status
  4113  }
  4114  
  4115  /**
  4116   * @author Trevor Smith
  4117   */
  4118  type Theme struct {
  4119  	Data              map[string]interface{} `json:"data,omitempty"`
  4120  	DefaultMessages   string                 `json:"defaultMessages,omitempty"`
  4121  	Id                string                 `json:"id,omitempty"`
  4122  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  4123  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  4124  	LocalizedMessages map[string]string      `json:"localizedMessages,omitempty"`
  4125  	Name              string                 `json:"name,omitempty"`
  4126  	Stylesheet        string                 `json:"stylesheet,omitempty"`
  4127  	Templates         Templates              `json:"templates,omitempty"`
  4128  }
  4129  
  4130  /**
  4131   * @author Daniel DeGroff
  4132   */
  4133  type RefreshTokenExpirationPolicy string
  4134  
  4135  func (e RefreshTokenExpirationPolicy) String() string {
  4136  	return string(e)
  4137  }
  4138  
  4139  const (
  4140  	RefreshTokenExpirationPolicy_Fixed                            RefreshTokenExpirationPolicy = "Fixed"
  4141  	RefreshTokenExpirationPolicy_SlidingWindow                    RefreshTokenExpirationPolicy = "SlidingWindow"
  4142  	RefreshTokenExpirationPolicy_SlidingWindowWithMaximumLifetime RefreshTokenExpirationPolicy = "SlidingWindowWithMaximumLifetime"
  4143  )
  4144  
  4145  /**
  4146   * Login API request object used for login to third-party systems (i.e. Login with Facebook).
  4147   *
  4148   * @author Brian Pontarelli
  4149   */
  4150  type IdentityProviderLoginRequest struct {
  4151  	BaseLoginRequest
  4152  	Data               map[string]string `json:"data,omitempty"`
  4153  	EncodedJWT         string            `json:"encodedJWT,omitempty"`
  4154  	IdentityProviderId string            `json:"identityProviderId,omitempty"`
  4155  	NoLink             bool              `json:"noLink"`
  4156  }
  4157  
  4158  /**
  4159   * Group API response object.
  4160   *
  4161   * @author Daniel DeGroff
  4162   */
  4163  type GroupResponse struct {
  4164  	BaseHTTPResponse
  4165  	Group  Group   `json:"group,omitempty"`
  4166  	Groups []Group `json:"groups,omitempty"`
  4167  }
  4168  
  4169  func (b *GroupResponse) SetStatus(status int) {
  4170  	b.StatusCode = status
  4171  }
  4172  
  4173  /**
  4174   * A policy to configure if and when the user-action is canceled prior to the expiration of the action.
  4175   *
  4176   * @author Daniel DeGroff
  4177   */
  4178  type FailedAuthenticationActionCancelPolicy struct {
  4179  	OnPasswordReset bool `json:"onPasswordReset"`
  4180  }
  4181  
  4182  /**
  4183   * @author Daniel DeGroff
  4184   */
  4185  type UnverifiedBehavior string
  4186  
  4187  func (e UnverifiedBehavior) String() string {
  4188  	return string(e)
  4189  }
  4190  
  4191  const (
  4192  	UnverifiedBehavior_Allow UnverifiedBehavior = "Allow"
  4193  	UnverifiedBehavior_Gated UnverifiedBehavior = "Gated"
  4194  )
  4195  
  4196  /**
  4197   * Models a consent.
  4198   *
  4199   * @author Daniel DeGroff
  4200   */
  4201  type Consent struct {
  4202  	ConsentEmailTemplateId          string                 `json:"consentEmailTemplateId,omitempty"`
  4203  	CountryMinimumAgeForSelfConsent map[string]int         `json:"countryMinimumAgeForSelfConsent,omitempty"`
  4204  	Data                            map[string]interface{} `json:"data,omitempty"`
  4205  	DefaultMinimumAgeForSelfConsent int                    `json:"defaultMinimumAgeForSelfConsent,omitempty"`
  4206  	EmailPlus                       EmailPlus              `json:"emailPlus,omitempty"`
  4207  	Id                              string                 `json:"id,omitempty"`
  4208  	InsertInstant                   int64                  `json:"insertInstant,omitempty"`
  4209  	LastUpdateInstant               int64                  `json:"lastUpdateInstant,omitempty"`
  4210  	MultipleValuesAllowed           bool                   `json:"multipleValuesAllowed"`
  4211  	Name                            string                 `json:"name,omitempty"`
  4212  	Values                          []string               `json:"values,omitempty"`
  4213  }
  4214  
  4215  /**
  4216   * @author Brett Guy
  4217   */
  4218  type IPAccessControlListRequest struct {
  4219  	IpAccessControlList IPAccessControlList `json:"ipAccessControlList,omitempty"`
  4220  }
  4221  
  4222  /**
  4223   * @author Brian Pontarelli
  4224   */
  4225  type SAMLv2ApplicationConfiguration struct {
  4226  	BaseIdentityProviderApplicationConfiguration
  4227  	ButtonImageURL string `json:"buttonImageURL,omitempty"`
  4228  	ButtonText     string `json:"buttonText,omitempty"`
  4229  }
  4230  
  4231  /**
  4232   * @author Brian Pontarelli
  4233   */
  4234  type AuditLogSearchRequest struct {
  4235  	Search AuditLogSearchCriteria `json:"search,omitempty"`
  4236  }
  4237  
  4238  /**
  4239   * Models the User Password Breach Event.
  4240   *
  4241   * @author Matthew Altman
  4242   */
  4243  type UserPasswordBreachEvent struct {
  4244  	BaseEvent
  4245  	User User `json:"user,omitempty"`
  4246  }
  4247  
  4248  /**
  4249   * @author Daniel DeGroff
  4250   */
  4251  type ReactorMetrics struct {
  4252  	BreachedPasswordMetrics map[string]BreachedPasswordTenantMetric `json:"breachedPasswordMetrics,omitempty"`
  4253  }
  4254  
  4255  /**
  4256   * @author Daniel DeGroff
  4257   */
  4258  type SendRequest struct {
  4259  	ApplicationId      string                 `json:"applicationId,omitempty"`
  4260  	BccAddresses       []string               `json:"bccAddresses,omitempty"`
  4261  	CcAddresses        []string               `json:"ccAddresses,omitempty"`
  4262  	PreferredLanguages []string               `json:"preferredLanguages,omitempty"`
  4263  	RequestData        map[string]interface{} `json:"requestData,omitempty"`
  4264  	ToAddresses        []EmailAddress         `json:"toAddresses,omitempty"`
  4265  	UserIds            []string               `json:"userIds,omitempty"`
  4266  }
  4267  
  4268  type AuditLogConfiguration struct {
  4269  	Delete DeleteConfiguration `json:"delete,omitempty"`
  4270  }
  4271  
  4272  /**
  4273   * Models the User Event (and can be converted to JSON) that is used for all user modifications (create, update,
  4274   * delete).
  4275   *
  4276   * @author Brian Pontarelli
  4277   */
  4278  type UserDeleteEvent struct {
  4279  	BaseEvent
  4280  	User User `json:"user,omitempty"`
  4281  }
  4282  
  4283  /**
  4284   * A custom OAuth scope for a specific application.
  4285   *
  4286   * @author Spencer Witt
  4287   */
  4288  type ApplicationOAuthScope struct {
  4289  	ApplicationId         string                 `json:"applicationId,omitempty"`
  4290  	Data                  map[string]interface{} `json:"data,omitempty"`
  4291  	DefaultConsentDetail  string                 `json:"defaultConsentDetail,omitempty"`
  4292  	DefaultConsentMessage string                 `json:"defaultConsentMessage,omitempty"`
  4293  	Description           string                 `json:"description,omitempty"`
  4294  	Id                    string                 `json:"id,omitempty"`
  4295  	InsertInstant         int64                  `json:"insertInstant,omitempty"`
  4296  	LastUpdateInstant     int64                  `json:"lastUpdateInstant,omitempty"`
  4297  	Name                  string                 `json:"name,omitempty"`
  4298  	Required              bool                   `json:"required"`
  4299  }
  4300  
  4301  /**
  4302   * Registration delete API request object.
  4303   *
  4304   * @author Brian Pontarelli
  4305   */
  4306  type RegistrationDeleteRequest struct {
  4307  	BaseEventRequest
  4308  }
  4309  
  4310  /**
  4311   * The phases of a time-based user action.
  4312   *
  4313   * @author Brian Pontarelli
  4314   */
  4315  type UserActionPhase string
  4316  
  4317  func (e UserActionPhase) String() string {
  4318  	return string(e)
  4319  }
  4320  
  4321  const (
  4322  	UserActionPhase_Start  UserActionPhase = "start"
  4323  	UserActionPhase_Modify UserActionPhase = "modify"
  4324  	UserActionPhase_Cancel UserActionPhase = "cancel"
  4325  	UserActionPhase_End    UserActionPhase = "end"
  4326  )
  4327  
  4328  /**
  4329   * @author Daniel DeGroff
  4330   */
  4331  type VerifyEmailRequest struct {
  4332  	BaseEventRequest
  4333  	OneTimeCode    string `json:"oneTimeCode,omitempty"`
  4334  	UserId         string `json:"userId,omitempty"`
  4335  	VerificationId string `json:"verificationId,omitempty"`
  4336  }
  4337  
  4338  /**
  4339   * @author Brian Pontarelli
  4340   */
  4341  type TwoFactorDisableRequest struct {
  4342  	BaseEventRequest
  4343  	ApplicationId string `json:"applicationId,omitempty"`
  4344  	Code          string `json:"code,omitempty"`
  4345  	MethodId      string `json:"methodId,omitempty"`
  4346  }
  4347  
  4348  /**
  4349   * Google social login provider.
  4350   *
  4351   * @author Daniel DeGroff
  4352   */
  4353  type GoogleIdentityProvider struct {
  4354  	BaseIdentityProvider
  4355  	ButtonText   string                           `json:"buttonText,omitempty"`
  4356  	ClientId     string                           `json:"client_id,omitempty"`
  4357  	ClientSecret string                           `json:"client_secret,omitempty"`
  4358  	LoginMethod  IdentityProviderLoginMethod      `json:"loginMethod,omitempty"`
  4359  	Properties   GoogleIdentityProviderProperties `json:"properties,omitempty"`
  4360  	Scope        string                           `json:"scope,omitempty"`
  4361  }
  4362  
  4363  /**
  4364   * @author Daniel DeGroff
  4365   */
  4366  type FormStep struct {
  4367  	Fields []string `json:"fields,omitempty"`
  4368  }
  4369  
  4370  /**
  4371   * A Tenant-level policy for deleting Users.
  4372   *
  4373   * @author Trevor Smith
  4374   */
  4375  type TenantUserDeletePolicy struct {
  4376  	Unverified TimeBasedDeletePolicy `json:"unverified,omitempty"`
  4377  }
  4378  
  4379  /**
  4380   * @author Brett Pontarelli
  4381   */
  4382  type SonyPSNApplicationConfiguration struct {
  4383  	BaseIdentityProviderApplicationConfiguration
  4384  	ButtonText   string `json:"buttonText,omitempty"`
  4385  	ClientId     string `json:"client_id,omitempty"`
  4386  	ClientSecret string `json:"client_secret,omitempty"`
  4387  	Scope        string `json:"scope,omitempty"`
  4388  }
  4389  
  4390  /**
  4391   * Search request for Keys
  4392   *
  4393   * @author Spencer Witt
  4394   */
  4395  type KeySearchRequest struct {
  4396  	Search KeySearchCriteria `json:"search,omitempty"`
  4397  }
  4398  
  4399  /**
  4400   * @author Daniel DeGroff
  4401   */
  4402  type LambdaEngineType string
  4403  
  4404  func (e LambdaEngineType) String() string {
  4405  	return string(e)
  4406  }
  4407  
  4408  const (
  4409  	LambdaEngineType_GraalJS LambdaEngineType = "GraalJS"
  4410  	LambdaEngineType_Nashorn LambdaEngineType = "Nashorn"
  4411  )
  4412  
  4413  /**
  4414   * @author Daniel DeGroff
  4415   */
  4416  type SystemTrustedProxyConfiguration struct {
  4417  	Trusted     []string                              `json:"trusted,omitempty"`
  4418  	TrustPolicy SystemTrustedProxyConfigurationPolicy `json:"trustPolicy,omitempty"`
  4419  }
  4420  
  4421  /**
  4422   * A log for an action that was taken on a User.
  4423   *
  4424   * @author Brian Pontarelli
  4425   */
  4426  type UserActionLog struct {
  4427  	ActioneeUserId  string     `json:"actioneeUserId,omitempty"`
  4428  	ActionerUserId  string     `json:"actionerUserId,omitempty"`
  4429  	ApplicationIds  []string   `json:"applicationIds,omitempty"`
  4430  	Comment         string     `json:"comment,omitempty"`
  4431  	EmailUserOnEnd  bool       `json:"emailUserOnEnd"`
  4432  	EndEventSent    bool       `json:"endEventSent"`
  4433  	Expiry          int64      `json:"expiry,omitempty"`
  4434  	History         LogHistory `json:"history,omitempty"`
  4435  	Id              string     `json:"id,omitempty"`
  4436  	InsertInstant   int64      `json:"insertInstant,omitempty"`
  4437  	LocalizedName   string     `json:"localizedName,omitempty"`
  4438  	LocalizedOption string     `json:"localizedOption,omitempty"`
  4439  	LocalizedReason string     `json:"localizedReason,omitempty"`
  4440  	Name            string     `json:"name,omitempty"`
  4441  	NotifyUserOnEnd bool       `json:"notifyUserOnEnd"`
  4442  	Option          string     `json:"option,omitempty"`
  4443  	Reason          string     `json:"reason,omitempty"`
  4444  	ReasonCode      string     `json:"reasonCode,omitempty"`
  4445  	UserActionId    string     `json:"userActionId,omitempty"`
  4446  }
  4447  
  4448  /**
  4449   * Login Ping API request object.
  4450   *
  4451   * @author Daniel DeGroff
  4452   */
  4453  type LoginPingRequest struct {
  4454  	BaseLoginRequest
  4455  	UserId string `json:"userId,omitempty"`
  4456  }
  4457  
  4458  /**
  4459   * @author Daniel DeGroff
  4460   */
  4461  type IdentityProviderLimitUserLinkingPolicy struct {
  4462  	Enableable
  4463  	MaximumLinks int `json:"maximumLinks,omitempty"`
  4464  }
  4465  
  4466  /**
  4467   * @author Daniel DeGroff
  4468   */
  4469  type EmailUnverifiedOptions struct {
  4470  	AllowEmailChangeWhenGated bool               `json:"allowEmailChangeWhenGated"`
  4471  	Behavior                  UnverifiedBehavior `json:"behavior,omitempty"`
  4472  }
  4473  
  4474  /**
  4475   * Base class for requests that can contain event information. This event information is used when sending Webhooks or emails
  4476   * during the transaction. The caller is responsible for ensuring that the event information is correct.
  4477   *
  4478   * @author Brian Pontarelli
  4479   */
  4480  type BaseEventRequest struct {
  4481  	EventInfo EventInfo `json:"eventInfo,omitempty"`
  4482  }
  4483  
  4484  type OAuthErrorType string
  4485  
  4486  func (e OAuthErrorType) String() string {
  4487  	return string(e)
  4488  }
  4489  
  4490  const (
  4491  	OAuthErrorType_InvalidRequest          OAuthErrorType = "invalid_request"
  4492  	OAuthErrorType_InvalidClient           OAuthErrorType = "invalid_client"
  4493  	OAuthErrorType_InvalidGrant            OAuthErrorType = "invalid_grant"
  4494  	OAuthErrorType_InvalidToken            OAuthErrorType = "invalid_token"
  4495  	OAuthErrorType_UnauthorizedClient      OAuthErrorType = "unauthorized_client"
  4496  	OAuthErrorType_InvalidScope            OAuthErrorType = "invalid_scope"
  4497  	OAuthErrorType_ServerError             OAuthErrorType = "server_error"
  4498  	OAuthErrorType_UnsupportedGrantType    OAuthErrorType = "unsupported_grant_type"
  4499  	OAuthErrorType_UnsupportedResponseType OAuthErrorType = "unsupported_response_type"
  4500  	OAuthErrorType_AccessDenied            OAuthErrorType = "access_denied"
  4501  	OAuthErrorType_ChangePasswordRequired  OAuthErrorType = "change_password_required"
  4502  	OAuthErrorType_NotLicensed             OAuthErrorType = "not_licensed"
  4503  	OAuthErrorType_TwoFactorRequired       OAuthErrorType = "two_factor_required"
  4504  	OAuthErrorType_AuthorizationPending    OAuthErrorType = "authorization_pending"
  4505  	OAuthErrorType_ExpiredToken            OAuthErrorType = "expired_token"
  4506  	OAuthErrorType_UnsupportedTokenType    OAuthErrorType = "unsupported_token_type"
  4507  )
  4508  
  4509  /**
  4510   * Search request for Tenants
  4511   *
  4512   * @author Mark Manes
  4513   */
  4514  type TenantSearchRequest struct {
  4515  	Search TenantSearchCriteria `json:"search,omitempty"`
  4516  }
  4517  
  4518  /**
  4519   * JWT Public Key Response Object
  4520   *
  4521   * @author Daniel DeGroff
  4522   */
  4523  type PublicKeyResponse struct {
  4524  	BaseHTTPResponse
  4525  	PublicKey  string            `json:"publicKey,omitempty"`
  4526  	PublicKeys map[string]string `json:"publicKeys,omitempty"`
  4527  }
  4528  
  4529  func (b *PublicKeyResponse) SetStatus(status int) {
  4530  	b.StatusCode = status
  4531  }
  4532  
  4533  /**
  4534   * @author Daniel DeGroff
  4535   */
  4536  type Sort string
  4537  
  4538  func (e Sort) String() string {
  4539  	return string(e)
  4540  }
  4541  
  4542  const (
  4543  	Sort_Asc  Sort = "asc"
  4544  	Sort_Desc Sort = "desc"
  4545  )
  4546  
  4547  /**
  4548   * Forgot password request object.
  4549   *
  4550   * @author Brian Pontarelli
  4551   */
  4552  type ForgotPasswordRequest struct {
  4553  	BaseEventRequest
  4554  	ApplicationId           string                 `json:"applicationId,omitempty"`
  4555  	ChangePasswordId        string                 `json:"changePasswordId,omitempty"`
  4556  	Email                   string                 `json:"email,omitempty"`
  4557  	LoginId                 string                 `json:"loginId,omitempty"`
  4558  	SendForgotPasswordEmail bool                   `json:"sendForgotPasswordEmail"`
  4559  	State                   map[string]interface{} `json:"state,omitempty"`
  4560  	Username                string                 `json:"username,omitempty"`
  4561  }
  4562  
  4563  /**
  4564   * Identity Provider response.
  4565   *
  4566   * @author Spencer Witt
  4567   */
  4568  type IdentityProviderSearchResponse struct {
  4569  	BaseHTTPResponse
  4570  	IdentityProviders []BaseIdentityProvider `json:"identityProviders,omitempty"`
  4571  	Total             int64                  `json:"total,omitempty"`
  4572  }
  4573  
  4574  func (b *IdentityProviderSearchResponse) SetStatus(status int) {
  4575  	b.StatusCode = status
  4576  }
  4577  
  4578  type MetaData struct {
  4579  	Data   map[string]interface{} `json:"data,omitempty"`
  4580  	Device DeviceInfo             `json:"device,omitempty"`
  4581  	Scopes []string               `json:"scopes,omitempty"`
  4582  }
  4583  
  4584  type SAMLLogoutBehavior string
  4585  
  4586  func (e SAMLLogoutBehavior) String() string {
  4587  	return string(e)
  4588  }
  4589  
  4590  const (
  4591  	SAMLLogoutBehavior_AllParticipants SAMLLogoutBehavior = "AllParticipants"
  4592  	SAMLLogoutBehavior_OnlyOriginator  SAMLLogoutBehavior = "OnlyOriginator"
  4593  )
  4594  
  4595  /**
  4596   * @author Brian Pontarelli
  4597   */
  4598  type EmailConfiguration struct {
  4599  	AdditionalHeaders                    []EmailHeader          `json:"additionalHeaders,omitempty"`
  4600  	Debug                                bool                   `json:"debug"`
  4601  	DefaultFromEmail                     string                 `json:"defaultFromEmail,omitempty"`
  4602  	DefaultFromName                      string                 `json:"defaultFromName,omitempty"`
  4603  	EmailUpdateEmailTemplateId           string                 `json:"emailUpdateEmailTemplateId,omitempty"`
  4604  	EmailVerifiedEmailTemplateId         string                 `json:"emailVerifiedEmailTemplateId,omitempty"`
  4605  	ForgotPasswordEmailTemplateId        string                 `json:"forgotPasswordEmailTemplateId,omitempty"`
  4606  	Host                                 string                 `json:"host,omitempty"`
  4607  	ImplicitEmailVerificationAllowed     bool                   `json:"implicitEmailVerificationAllowed"`
  4608  	LoginIdInUseOnCreateEmailTemplateId  string                 `json:"loginIdInUseOnCreateEmailTemplateId,omitempty"`
  4609  	LoginIdInUseOnUpdateEmailTemplateId  string                 `json:"loginIdInUseOnUpdateEmailTemplateId,omitempty"`
  4610  	LoginNewDeviceEmailTemplateId        string                 `json:"loginNewDeviceEmailTemplateId,omitempty"`
  4611  	LoginSuspiciousEmailTemplateId       string                 `json:"loginSuspiciousEmailTemplateId,omitempty"`
  4612  	Password                             string                 `json:"password,omitempty"`
  4613  	PasswordlessEmailTemplateId          string                 `json:"passwordlessEmailTemplateId,omitempty"`
  4614  	PasswordResetSuccessEmailTemplateId  string                 `json:"passwordResetSuccessEmailTemplateId,omitempty"`
  4615  	PasswordUpdateEmailTemplateId        string                 `json:"passwordUpdateEmailTemplateId,omitempty"`
  4616  	Port                                 int                    `json:"port,omitempty"`
  4617  	Properties                           string                 `json:"properties,omitempty"`
  4618  	Security                             EmailSecurityType      `json:"security,omitempty"`
  4619  	SetPasswordEmailTemplateId           string                 `json:"setPasswordEmailTemplateId,omitempty"`
  4620  	TwoFactorMethodAddEmailTemplateId    string                 `json:"twoFactorMethodAddEmailTemplateId,omitempty"`
  4621  	TwoFactorMethodRemoveEmailTemplateId string                 `json:"twoFactorMethodRemoveEmailTemplateId,omitempty"`
  4622  	Unverified                           EmailUnverifiedOptions `json:"unverified,omitempty"`
  4623  	Username                             string                 `json:"username,omitempty"`
  4624  	VerificationEmailTemplateId          string                 `json:"verificationEmailTemplateId,omitempty"`
  4625  	VerificationStrategy                 VerificationStrategy   `json:"verificationStrategy,omitempty"`
  4626  	VerifyEmail                          bool                   `json:"verifyEmail"`
  4627  	VerifyEmailWhenChanged               bool                   `json:"verifyEmailWhenChanged"`
  4628  }
  4629  
  4630  /**
  4631   * @author Daniel DeGroff
  4632   */
  4633  type TenantLoginConfiguration struct {
  4634  	RequireAuthentication bool `json:"requireAuthentication"`
  4635  }
  4636  
  4637  /**
  4638   * The user action request object.
  4639   *
  4640   * @author Brian Pontarelli
  4641   */
  4642  type ActionRequest struct {
  4643  	BaseEventRequest
  4644  	Action    ActionData `json:"action,omitempty"`
  4645  	Broadcast bool       `json:"broadcast"`
  4646  }
  4647  
  4648  /**
  4649   * The IdP behavior when no user link has been made yet.
  4650   *
  4651   * @author Daniel DeGroff
  4652   */
  4653  type IdentityProviderLinkingStrategy string
  4654  
  4655  func (e IdentityProviderLinkingStrategy) String() string {
  4656  	return string(e)
  4657  }
  4658  
  4659  const (
  4660  	IdentityProviderLinkingStrategy_CreatePendingLink             IdentityProviderLinkingStrategy = "CreatePendingLink"
  4661  	IdentityProviderLinkingStrategy_Disabled                      IdentityProviderLinkingStrategy = "Disabled"
  4662  	IdentityProviderLinkingStrategy_LinkAnonymously               IdentityProviderLinkingStrategy = "LinkAnonymously"
  4663  	IdentityProviderLinkingStrategy_LinkByEmail                   IdentityProviderLinkingStrategy = "LinkByEmail"
  4664  	IdentityProviderLinkingStrategy_LinkByEmailForExistingUser    IdentityProviderLinkingStrategy = "LinkByEmailForExistingUser"
  4665  	IdentityProviderLinkingStrategy_LinkByUsername                IdentityProviderLinkingStrategy = "LinkByUsername"
  4666  	IdentityProviderLinkingStrategy_LinkByUsernameForExistingUser IdentityProviderLinkingStrategy = "LinkByUsernameForExistingUser"
  4667  	IdentityProviderLinkingStrategy_Unsupported                   IdentityProviderLinkingStrategy = "Unsupported"
  4668  )
  4669  
  4670  /**
  4671   * @author Daniel DeGroff
  4672   */
  4673  type IdentityProviderRequest struct {
  4674  	IdentityProvider BaseIdentityProvider `json:"identityProvider,omitempty"`
  4675  }
  4676  
  4677  /**
  4678   * @author Tyler Scott
  4679   */
  4680  type Group struct {
  4681  	Data              map[string]interface{}       `json:"data,omitempty"`
  4682  	Id                string                       `json:"id,omitempty"`
  4683  	InsertInstant     int64                        `json:"insertInstant,omitempty"`
  4684  	LastUpdateInstant int64                        `json:"lastUpdateInstant,omitempty"`
  4685  	Name              string                       `json:"name,omitempty"`
  4686  	Roles             map[string][]ApplicationRole `json:"roles,omitempty"`
  4687  	TenantId          string                       `json:"tenantId,omitempty"`
  4688  }
  4689  
  4690  /**
  4691   * @author Lyle Schemmerling
  4692   */
  4693  type SAMLv2AssertionConfiguration struct {
  4694  	Destination SAMLv2DestinationAssertionConfiguration `json:"destination,omitempty"`
  4695  }
  4696  
  4697  /**
  4698   * Request to complete the WebAuthn registration ceremony for a new credential,.
  4699   *
  4700   * @author Spencer Witt
  4701   */
  4702  type WebAuthnRegisterCompleteRequest struct {
  4703  	Credential WebAuthnPublicKeyRegistrationRequest `json:"credential,omitempty"`
  4704  	Origin     string                               `json:"origin,omitempty"`
  4705  	RpId       string                               `json:"rpId,omitempty"`
  4706  	UserId     string                               `json:"userId,omitempty"`
  4707  }
  4708  
  4709  /**
  4710   * @author Daniel DeGroff
  4711   */
  4712  type ReactorResponse struct {
  4713  	BaseHTTPResponse
  4714  	Status ReactorStatus `json:"status,omitempty"`
  4715  }
  4716  
  4717  func (b *ReactorResponse) SetStatus(status int) {
  4718  	b.StatusCode = status
  4719  }
  4720  
  4721  /**
  4722   * A role given to a user for a specific application.
  4723   *
  4724   * @author Seth Musselman
  4725   */
  4726  type ApplicationRole struct {
  4727  	Description       string `json:"description,omitempty"`
  4728  	Id                string `json:"id,omitempty"`
  4729  	InsertInstant     int64  `json:"insertInstant,omitempty"`
  4730  	IsDefault         bool   `json:"isDefault"`
  4731  	IsSuperRole       bool   `json:"isSuperRole"`
  4732  	LastUpdateInstant int64  `json:"lastUpdateInstant,omitempty"`
  4733  	Name              string `json:"name,omitempty"`
  4734  }
  4735  
  4736  /**
  4737   * @author Daniel DeGroff
  4738   */
  4739  type VerifyRegistrationResponse struct {
  4740  	BaseHTTPResponse
  4741  	OneTimeCode    string `json:"oneTimeCode,omitempty"`
  4742  	VerificationId string `json:"verificationId,omitempty"`
  4743  }
  4744  
  4745  func (b *VerifyRegistrationResponse) SetStatus(status int) {
  4746  	b.StatusCode = status
  4747  }
  4748  
  4749  /**
  4750   * @author Trevor Smith
  4751   */
  4752  type CORSConfiguration struct {
  4753  	Enableable
  4754  	AllowCredentials         bool         `json:"allowCredentials"`
  4755  	AllowedHeaders           []string     `json:"allowedHeaders,omitempty"`
  4756  	AllowedMethods           []HTTPMethod `json:"allowedMethods,omitempty"`
  4757  	AllowedOrigins           []string     `json:"allowedOrigins,omitempty"`
  4758  	Debug                    bool         `json:"debug"`
  4759  	ExposedHeaders           []string     `json:"exposedHeaders,omitempty"`
  4760  	PreflightMaxAgeInSeconds int          `json:"preflightMaxAgeInSeconds,omitempty"`
  4761  }
  4762  
  4763  /**
  4764   * Group Member Request
  4765   *
  4766   * @author Daniel DeGroff
  4767   */
  4768  type MemberRequest struct {
  4769  	Members map[string][]GroupMember `json:"members,omitempty"`
  4770  }
  4771  
  4772  /**
  4773   * @author Brian Pontarelli
  4774   */
  4775  type BaseSearchCriteria struct {
  4776  	NumberOfResults int    `json:"numberOfResults,omitempty"`
  4777  	OrderBy         string `json:"orderBy,omitempty"`
  4778  	StartRow        int    `json:"startRow,omitempty"`
  4779  }
  4780  
  4781  /**
  4782   * Interface for any object that can provide JSON Web key Information.
  4783   */
  4784  type JSONWebKeyInfoProvider struct {
  4785  }
  4786  
  4787  type BreachAction string
  4788  
  4789  func (e BreachAction) String() string {
  4790  	return string(e)
  4791  }
  4792  
  4793  const (
  4794  	BreachAction_Off           BreachAction = "Off"
  4795  	BreachAction_RecordOnly    BreachAction = "RecordOnly"
  4796  	BreachAction_NotifyUser    BreachAction = "NotifyUser"
  4797  	BreachAction_RequireChange BreachAction = "RequireChange"
  4798  )
  4799  
  4800  /**
  4801   * Event Log Type
  4802   *
  4803   * @author Daniel DeGroff
  4804   */
  4805  type EventLogType string
  4806  
  4807  func (e EventLogType) String() string {
  4808  	return string(e)
  4809  }
  4810  
  4811  const (
  4812  	EventLogType_Information EventLogType = "Information"
  4813  	EventLogType_Debug       EventLogType = "Debug"
  4814  	EventLogType_Error       EventLogType = "Error"
  4815  )
  4816  
  4817  /**
  4818   * Models the User Update Registration Event.
  4819   *
  4820   * @author Daniel DeGroff
  4821   */
  4822  type UserRegistrationUpdateEvent struct {
  4823  	BaseEvent
  4824  	ApplicationId string           `json:"applicationId,omitempty"`
  4825  	Original      UserRegistration `json:"original,omitempty"`
  4826  	Registration  UserRegistration `json:"registration,omitempty"`
  4827  	User          User             `json:"user,omitempty"`
  4828  }
  4829  
  4830  /**
  4831   * Entity API response object.
  4832   *
  4833   * @author Brian Pontarelli
  4834   */
  4835  type EntityResponse struct {
  4836  	BaseHTTPResponse
  4837  	Entity Entity `json:"entity,omitempty"`
  4838  }
  4839  
  4840  func (b *EntityResponse) SetStatus(status int) {
  4841  	b.StatusCode = status
  4842  }
  4843  
  4844  /**
  4845   * Describes a user account or WebAuthn Relying Party associated with a public key credential
  4846   */
  4847  type PublicKeyCredentialEntity struct {
  4848  	Name string `json:"name,omitempty"`
  4849  }
  4850  
  4851  type ApplicationEmailConfiguration struct {
  4852  	EmailUpdateEmailTemplateId           string `json:"emailUpdateEmailTemplateId,omitempty"`
  4853  	EmailVerificationEmailTemplateId     string `json:"emailVerificationEmailTemplateId,omitempty"`
  4854  	EmailVerifiedEmailTemplateId         string `json:"emailVerifiedEmailTemplateId,omitempty"`
  4855  	ForgotPasswordEmailTemplateId        string `json:"forgotPasswordEmailTemplateId,omitempty"`
  4856  	LoginIdInUseOnCreateEmailTemplateId  string `json:"loginIdInUseOnCreateEmailTemplateId,omitempty"`
  4857  	LoginIdInUseOnUpdateEmailTemplateId  string `json:"loginIdInUseOnUpdateEmailTemplateId,omitempty"`
  4858  	LoginNewDeviceEmailTemplateId        string `json:"loginNewDeviceEmailTemplateId,omitempty"`
  4859  	LoginSuspiciousEmailTemplateId       string `json:"loginSuspiciousEmailTemplateId,omitempty"`
  4860  	PasswordlessEmailTemplateId          string `json:"passwordlessEmailTemplateId,omitempty"`
  4861  	PasswordResetSuccessEmailTemplateId  string `json:"passwordResetSuccessEmailTemplateId,omitempty"`
  4862  	PasswordUpdateEmailTemplateId        string `json:"passwordUpdateEmailTemplateId,omitempty"`
  4863  	SetPasswordEmailTemplateId           string `json:"setPasswordEmailTemplateId,omitempty"`
  4864  	TwoFactorMethodAddEmailTemplateId    string `json:"twoFactorMethodAddEmailTemplateId,omitempty"`
  4865  	TwoFactorMethodRemoveEmailTemplateId string `json:"twoFactorMethodRemoveEmailTemplateId,omitempty"`
  4866  }
  4867  
  4868  /**
  4869   * @author Daniel DeGroff
  4870   */
  4871  type IdentityProviderStartLoginResponse struct {
  4872  	BaseHTTPResponse
  4873  	Code string `json:"code,omitempty"`
  4874  }
  4875  
  4876  func (b *IdentityProviderStartLoginResponse) SetStatus(status int) {
  4877  	b.StatusCode = status
  4878  }
  4879  
  4880  /**
  4881   * @author Brett Pontarelli
  4882   */
  4883  type EpicGamesApplicationConfiguration struct {
  4884  	BaseIdentityProviderApplicationConfiguration
  4885  	ButtonText   string `json:"buttonText,omitempty"`
  4886  	ClientId     string `json:"client_id,omitempty"`
  4887  	ClientSecret string `json:"client_secret,omitempty"`
  4888  	Scope        string `json:"scope,omitempty"`
  4889  }
  4890  
  4891  /**
  4892   * Models the User Deleted Registration Event.
  4893   * <p>
  4894   * This is different than user.registration.delete in that it is sent after the TX has been committed. This event cannot be transactional.
  4895   *
  4896   * @author Daniel DeGroff
  4897   */
  4898  type UserRegistrationDeleteCompleteEvent struct {
  4899  	BaseEvent
  4900  	ApplicationId string           `json:"applicationId,omitempty"`
  4901  	Registration  UserRegistration `json:"registration,omitempty"`
  4902  	User          User             `json:"user,omitempty"`
  4903  }
  4904  
  4905  /**
  4906   * Group API request object.
  4907   *
  4908   * @author Daniel DeGroff
  4909   */
  4910  type GroupRequest struct {
  4911  	Group   Group    `json:"group,omitempty"`
  4912  	RoleIds []string `json:"roleIds,omitempty"`
  4913  }
  4914  
  4915  /**
  4916   * User Comment Response
  4917   *
  4918   * @author Seth Musselman
  4919   */
  4920  type UserCommentResponse struct {
  4921  	BaseHTTPResponse
  4922  	UserComment  UserComment   `json:"userComment,omitempty"`
  4923  	UserComments []UserComment `json:"userComments,omitempty"`
  4924  }
  4925  
  4926  func (b *UserCommentResponse) SetStatus(status int) {
  4927  	b.StatusCode = status
  4928  }
  4929  
  4930  /**
  4931   * @author Daniel DeGroff
  4932   */
  4933  type ValidateResponse struct {
  4934  	BaseHTTPResponse
  4935  	Jwt JWT `json:"jwt,omitempty"`
  4936  }
  4937  
  4938  func (b *ValidateResponse) SetStatus(status int) {
  4939  	b.StatusCode = status
  4940  }
  4941  
  4942  /**
  4943   * @author Daniel DeGroff
  4944   */
  4945  type GoogleApplicationConfiguration struct {
  4946  	BaseIdentityProviderApplicationConfiguration
  4947  	ButtonText   string                           `json:"buttonText,omitempty"`
  4948  	ClientId     string                           `json:"client_id,omitempty"`
  4949  	ClientSecret string                           `json:"client_secret,omitempty"`
  4950  	LoginMethod  IdentityProviderLoginMethod      `json:"loginMethod,omitempty"`
  4951  	Properties   GoogleIdentityProviderProperties `json:"properties,omitempty"`
  4952  	Scope        string                           `json:"scope,omitempty"`
  4953  }
  4954  
  4955  /**
  4956   * Models the User Event (and can be converted to JSON) that is used for all user modifications (create, update,
  4957   * delete).
  4958   * <p>
  4959   * This is different than user.delete because it is sent after the tx is committed, this cannot be transactional.
  4960   *
  4961   * @author Daniel DeGroff
  4962   */
  4963  type UserDeleteCompleteEvent struct {
  4964  	BaseEvent
  4965  	User User `json:"user,omitempty"`
  4966  }
  4967  
  4968  /**
  4969   * Supply additional information about the user account when creating a new credential
  4970   *
  4971   * @author Spencer Witt
  4972   */
  4973  type PublicKeyCredentialUserEntity struct {
  4974  	PublicKeyCredentialEntity
  4975  	DisplayName string `json:"displayName,omitempty"`
  4976  	Id          string `json:"id,omitempty"`
  4977  }
  4978  
  4979  /**
  4980   * A JavaScript lambda function that is executed during certain events inside FusionAuth.
  4981   *
  4982   * @author Brian Pontarelli
  4983   */
  4984  type Lambda struct {
  4985  	Body              string           `json:"body,omitempty"`
  4986  	Debug             bool             `json:"debug"`
  4987  	EngineType        LambdaEngineType `json:"engineType,omitempty"`
  4988  	Id                string           `json:"id,omitempty"`
  4989  	InsertInstant     int64            `json:"insertInstant,omitempty"`
  4990  	LastUpdateInstant int64            `json:"lastUpdateInstant,omitempty"`
  4991  	Name              string           `json:"name,omitempty"`
  4992  	Type              LambdaType       `json:"type,omitempty"`
  4993  }
  4994  
  4995  /**
  4996   * SonyPSN gaming login provider.
  4997   *
  4998   * @author Brett Pontarelli
  4999   */
  5000  type SonyPSNIdentityProvider struct {
  5001  	BaseIdentityProvider
  5002  	ButtonText   string `json:"buttonText,omitempty"`
  5003  	ClientId     string `json:"client_id,omitempty"`
  5004  	ClientSecret string `json:"client_secret,omitempty"`
  5005  	Scope        string `json:"scope,omitempty"`
  5006  }
  5007  
  5008  /**
  5009   * @author Daniel DeGroff
  5010   */
  5011  type BreachedPasswordTenantMetric struct {
  5012  	ActionRequired             int `json:"actionRequired,omitempty"`
  5013  	MatchedCommonPasswordCount int `json:"matchedCommonPasswordCount,omitempty"`
  5014  	MatchedExactCount          int `json:"matchedExactCount,omitempty"`
  5015  	MatchedPasswordCount       int `json:"matchedPasswordCount,omitempty"`
  5016  	MatchedSubAddressCount     int `json:"matchedSubAddressCount,omitempty"`
  5017  	PasswordsCheckedCount      int `json:"passwordsCheckedCount,omitempty"`
  5018  }
  5019  
  5020  /**
  5021   * @author Brett Pontarelli
  5022   */
  5023  type NintendoApplicationConfiguration struct {
  5024  	BaseIdentityProviderApplicationConfiguration
  5025  	ButtonText    string `json:"buttonText,omitempty"`
  5026  	ClientId      string `json:"client_id,omitempty"`
  5027  	ClientSecret  string `json:"client_secret,omitempty"`
  5028  	EmailClaim    string `json:"emailClaim,omitempty"`
  5029  	Scope         string `json:"scope,omitempty"`
  5030  	UniqueIdClaim string `json:"uniqueIdClaim,omitempty"`
  5031  	UsernameClaim string `json:"usernameClaim,omitempty"`
  5032  }
  5033  
  5034  /**
  5035   * @author Daniel DeGroff
  5036   */
  5037  type TenantUnverifiedConfiguration struct {
  5038  	Email     UnverifiedBehavior            `json:"email,omitempty"`
  5039  	WhenGated RegistrationUnverifiedOptions `json:"whenGated,omitempty"`
  5040  }
  5041  
  5042  /**
  5043   * @author Daniel DeGroff
  5044   */
  5045  type LoginRecordSearchCriteria struct {
  5046  	BaseSearchCriteria
  5047  	ApplicationId string `json:"applicationId,omitempty"`
  5048  	End           int64  `json:"end,omitempty"`
  5049  	Start         int64  `json:"start,omitempty"`
  5050  	UserId        string `json:"userId,omitempty"`
  5051  }
  5052  
  5053  /**
  5054   * Search request for entity types.
  5055   *
  5056   * @author Brian Pontarelli
  5057   */
  5058  type EntityTypeSearchRequest struct {
  5059  	Search EntityTypeSearchCriteria `json:"search,omitempty"`
  5060  }
  5061  
  5062  /**
  5063   * Models the Refresh Token Revoke Event. This event might be for a single token, a user
  5064   * or an entire application.
  5065   *
  5066   * @author Brian Pontarelli
  5067   */
  5068  type JWTRefreshTokenRevokeEvent struct {
  5069  	BaseEvent
  5070  	ApplicationId                  string         `json:"applicationId,omitempty"`
  5071  	ApplicationTimeToLiveInSeconds map[string]int `json:"applicationTimeToLiveInSeconds,omitempty"`
  5072  	RefreshToken                   RefreshToken   `json:"refreshToken,omitempty"`
  5073  	User                           User           `json:"user,omitempty"`
  5074  	UserId                         string         `json:"userId,omitempty"`
  5075  }
  5076  
  5077  /**
  5078   * @author Daniel DeGroff
  5079   */
  5080  type IdentityProviderLink struct {
  5081  	Data                   map[string]interface{} `json:"data,omitempty"`
  5082  	DisplayName            string                 `json:"displayName,omitempty"`
  5083  	IdentityProviderId     string                 `json:"identityProviderId,omitempty"`
  5084  	IdentityProviderName   string                 `json:"identityProviderName,omitempty"`
  5085  	IdentityProviderType   IdentityProviderType   `json:"identityProviderType,omitempty"`
  5086  	IdentityProviderUserId string                 `json:"identityProviderUserId,omitempty"`
  5087  	InsertInstant          int64                  `json:"insertInstant,omitempty"`
  5088  	LastLoginInstant       int64                  `json:"lastLoginInstant,omitempty"`
  5089  	TenantId               string                 `json:"tenantId,omitempty"`
  5090  	Token                  string                 `json:"token,omitempty"`
  5091  	UserId                 string                 `json:"userId,omitempty"`
  5092  }
  5093  
  5094  /**
  5095   * Twitch gaming login provider.
  5096   *
  5097   * @author Brett Pontarelli
  5098   */
  5099  type TwitchIdentityProvider struct {
  5100  	BaseIdentityProvider
  5101  	ButtonText   string `json:"buttonText,omitempty"`
  5102  	ClientId     string `json:"client_id,omitempty"`
  5103  	ClientSecret string `json:"client_secret,omitempty"`
  5104  	Scope        string `json:"scope,omitempty"`
  5105  }
  5106  
  5107  /**
  5108   * The global view of a User. This object contains all global information about the user including birthdate, registration information
  5109   * preferred languages, global attributes, etc.
  5110   *
  5111   * @author Seth Musselman
  5112   */
  5113  type User struct {
  5114  	SecureIdentity
  5115  	Active             bool                       `json:"active"`
  5116  	BirthDate          string                     `json:"birthDate,omitempty"`
  5117  	CleanSpeakId       string                     `json:"cleanSpeakId,omitempty"`
  5118  	Data               map[string]interface{}     `json:"data,omitempty"`
  5119  	Email              string                     `json:"email,omitempty"`
  5120  	Expiry             int64                      `json:"expiry,omitempty"`
  5121  	FirstName          string                     `json:"firstName,omitempty"`
  5122  	FullName           string                     `json:"fullName,omitempty"`
  5123  	ImageUrl           string                     `json:"imageUrl,omitempty"`
  5124  	InsertInstant      int64                      `json:"insertInstant,omitempty"`
  5125  	LastName           string                     `json:"lastName,omitempty"`
  5126  	LastUpdateInstant  int64                      `json:"lastUpdateInstant,omitempty"`
  5127  	Memberships        []GroupMember              `json:"memberships,omitempty"`
  5128  	MiddleName         string                     `json:"middleName,omitempty"`
  5129  	MobilePhone        string                     `json:"mobilePhone,omitempty"`
  5130  	ParentEmail        string                     `json:"parentEmail,omitempty"`
  5131  	PreferredLanguages []string                   `json:"preferredLanguages,omitempty"`
  5132  	Registrations      []UserRegistration         `json:"registrations,omitempty"`
  5133  	TenantId           string                     `json:"tenantId,omitempty"`
  5134  	Timezone           string                     `json:"timezone,omitempty"`
  5135  	TwoFactor          UserTwoFactorConfiguration `json:"twoFactor,omitempty"`
  5136  }
  5137  
  5138  /**
  5139   * Search criteria for entity types.
  5140   *
  5141   * @author Brian Pontarelli
  5142   */
  5143  type EntityTypeSearchCriteria struct {
  5144  	BaseSearchCriteria
  5145  	Name string `json:"name,omitempty"`
  5146  }
  5147  
  5148  /**
  5149   * Models the User Identity Provider Unlink Event.
  5150   *
  5151   * @author Rob Davis
  5152   */
  5153  type UserIdentityProviderUnlinkEvent struct {
  5154  	BaseEvent
  5155  	IdentityProviderLink IdentityProviderLink `json:"identityProviderLink,omitempty"`
  5156  	User                 User                 `json:"user,omitempty"`
  5157  }
  5158  
  5159  /**
  5160   * Contains extension output for requested extensions during a WebAuthn ceremony
  5161   *
  5162   * @author Spencer Witt
  5163   */
  5164  type WebAuthnExtensionsClientOutputs struct {
  5165  	CredProps CredentialPropertiesOutput `json:"credProps,omitempty"`
  5166  }
  5167  
  5168  /**
  5169   * @author Daniel DeGroff
  5170   */
  5171  type AuthenticatorConfiguration struct {
  5172  	Algorithm  TOTPAlgorithm `json:"algorithm,omitempty"`
  5173  	CodeLength int           `json:"codeLength,omitempty"`
  5174  	TimeStep   int           `json:"timeStep,omitempty"`
  5175  }
  5176  
  5177  /**
  5178   * @author Daniel DeGroff
  5179   */
  5180  type TwoFactorEnableDisableSendRequest struct {
  5181  	Email       string `json:"email,omitempty"`
  5182  	Method      string `json:"method,omitempty"`
  5183  	MethodId    string `json:"methodId,omitempty"`
  5184  	MobilePhone string `json:"mobilePhone,omitempty"`
  5185  }
  5186  
  5187  /**
  5188   * Tenant-level configuration for WebAuthn
  5189   *
  5190   * @author Spencer Witt
  5191   */
  5192  type TenantWebAuthnConfiguration struct {
  5193  	Enableable
  5194  	BootstrapWorkflow        TenantWebAuthnWorkflowConfiguration `json:"bootstrapWorkflow,omitempty"`
  5195  	Debug                    bool                                `json:"debug"`
  5196  	ReauthenticationWorkflow TenantWebAuthnWorkflowConfiguration `json:"reauthenticationWorkflow,omitempty"`
  5197  	RelyingPartyId           string                              `json:"relyingPartyId,omitempty"`
  5198  	RelyingPartyName         string                              `json:"relyingPartyName,omitempty"`
  5199  }
  5200  
  5201  /**
  5202   * Models the Group Created Event.
  5203   *
  5204   * @author Daniel DeGroff
  5205   */
  5206  type GroupCreateCompleteEvent struct {
  5207  	BaseEvent
  5208  	Group Group `json:"group,omitempty"`
  5209  }
  5210  
  5211  /**
  5212   * Options to request extensions during credential registration
  5213   *
  5214   * @author Spencer Witt
  5215   */
  5216  type WebAuthnRegistrationExtensionOptions struct {
  5217  	CredProps bool `json:"credProps"`
  5218  }
  5219  
  5220  /**
  5221   * Password Encryption Scheme Configuration
  5222   *
  5223   * @author Daniel DeGroff
  5224   */
  5225  type PasswordEncryptionConfiguration struct {
  5226  	EncryptionScheme              string `json:"encryptionScheme,omitempty"`
  5227  	EncryptionSchemeFactor        int    `json:"encryptionSchemeFactor,omitempty"`
  5228  	ModifyEncryptionSchemeOnLogin bool   `json:"modifyEncryptionSchemeOnLogin"`
  5229  }
  5230  
  5231  /**
  5232   * Registration API request object.
  5233   *
  5234   * @author Brian Pontarelli
  5235   */
  5236  type RegistrationRequest struct {
  5237  	BaseEventRequest
  5238  	DisableDomainBlock           bool             `json:"disableDomainBlock"`
  5239  	GenerateAuthenticationToken  bool             `json:"generateAuthenticationToken"`
  5240  	Registration                 UserRegistration `json:"registration,omitempty"`
  5241  	SendSetPasswordEmail         bool             `json:"sendSetPasswordEmail"`
  5242  	SkipRegistrationVerification bool             `json:"skipRegistrationVerification"`
  5243  	SkipVerification             bool             `json:"skipVerification"`
  5244  	User                         User             `json:"user,omitempty"`
  5245  }
  5246  
  5247  /**
  5248   * The Application API request object.
  5249   *
  5250   * @author Brian Pontarelli
  5251   */
  5252  type ApplicationRequest struct {
  5253  	BaseEventRequest
  5254  	Application         Application     `json:"application,omitempty"`
  5255  	Role                ApplicationRole `json:"role,omitempty"`
  5256  	SourceApplicationId string          `json:"sourceApplicationId,omitempty"`
  5257  }
  5258  
  5259  /**
  5260   * @author Daniel DeGroff
  5261   */
  5262  type TwoFactorResponse struct {
  5263  	BaseHTTPResponse
  5264  	Code          string   `json:"code,omitempty"`
  5265  	RecoveryCodes []string `json:"recoveryCodes,omitempty"`
  5266  }
  5267  
  5268  func (b *TwoFactorResponse) SetStatus(status int) {
  5269  	b.StatusCode = status
  5270  }
  5271  
  5272  type MultiFactorAuthenticatorMethod struct {
  5273  	Enableable
  5274  	Algorithm  TOTPAlgorithm `json:"algorithm,omitempty"`
  5275  	CodeLength int           `json:"codeLength,omitempty"`
  5276  	TimeStep   int           `json:"timeStep,omitempty"`
  5277  }
  5278  
  5279  type SAMLv2Logout struct {
  5280  	Behavior                 SAMLLogoutBehavior     `json:"behavior,omitempty"`
  5281  	DefaultVerificationKeyId string                 `json:"defaultVerificationKeyId,omitempty"`
  5282  	KeyId                    string                 `json:"keyId,omitempty"`
  5283  	RequireSignedRequests    bool                   `json:"requireSignedRequests"`
  5284  	SingleLogout             SAMLv2SingleLogout     `json:"singleLogout,omitempty"`
  5285  	XmlSignatureC14nMethod   CanonicalizationMethod `json:"xmlSignatureC14nMethod,omitempty"`
  5286  }
  5287  
  5288  /**
  5289   * @author Daniel DeGroff
  5290   */
  5291  type RefreshTokenSlidingWindowConfiguration struct {
  5292  	MaximumTimeToLiveInMinutes int `json:"maximumTimeToLiveInMinutes,omitempty"`
  5293  }
  5294  
  5295  /**
  5296   * Search criteria for Identity Providers.
  5297   *
  5298   * @author Spencer Witt
  5299   */
  5300  type IdentityProviderSearchCriteria struct {
  5301  	BaseSearchCriteria
  5302  	ApplicationId string               `json:"applicationId,omitempty"`
  5303  	Name          string               `json:"name,omitempty"`
  5304  	Type          IdentityProviderType `json:"type,omitempty"`
  5305  }
  5306  
  5307  /**
  5308   * @author Daniel DeGroff
  5309   */
  5310  type JWTVendRequest struct {
  5311  	Claims              map[string]interface{} `json:"claims,omitempty"`
  5312  	KeyId               string                 `json:"keyId,omitempty"`
  5313  	TimeToLiveInSeconds int                    `json:"timeToLiveInSeconds,omitempty"`
  5314  }
  5315  
  5316  /**
  5317   * User API delete request object for a single user.
  5318   *
  5319   * @author Brian Pontarelli
  5320   */
  5321  type UserDeleteSingleRequest struct {
  5322  	BaseEventRequest
  5323  	HardDelete bool `json:"hardDelete"`
  5324  }
  5325  
  5326  /**
  5327   * Search request for Groups.
  5328   *
  5329   * @author Daniel DeGroff
  5330   */
  5331  type GroupSearchRequest struct {
  5332  	Search GroupSearchCriteria `json:"search,omitempty"`
  5333  }
  5334  
  5335  /**
  5336   * The <i>authenticator's</i> response for the authentication ceremony in its encoded format
  5337   *
  5338   * @author Spencer Witt
  5339   */
  5340  type WebAuthnAuthenticatorAuthenticationResponse struct {
  5341  	BaseHTTPResponse
  5342  	AuthenticatorData string `json:"authenticatorData,omitempty"`
  5343  	ClientDataJSON    string `json:"clientDataJSON,omitempty"`
  5344  	Signature         string `json:"signature,omitempty"`
  5345  	UserHandle        string `json:"userHandle,omitempty"`
  5346  }
  5347  
  5348  func (b *WebAuthnAuthenticatorAuthenticationResponse) SetStatus(status int) {
  5349  	b.StatusCode = status
  5350  }
  5351  
  5352  /**
  5353   * Epic gaming login provider.
  5354   *
  5355   * @author Brett Pontarelli
  5356   */
  5357  type EpicGamesIdentityProvider struct {
  5358  	BaseIdentityProvider
  5359  	ButtonText   string `json:"buttonText,omitempty"`
  5360  	ClientId     string `json:"client_id,omitempty"`
  5361  	ClientSecret string `json:"client_secret,omitempty"`
  5362  	Scope        string `json:"scope,omitempty"`
  5363  }
  5364  
  5365  /**
  5366   * @author Daniel DeGroff
  5367   */
  5368  type Form struct {
  5369  	Data              map[string]interface{} `json:"data,omitempty"`
  5370  	Id                string                 `json:"id,omitempty"`
  5371  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  5372  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  5373  	Name              string                 `json:"name,omitempty"`
  5374  	Steps             []FormStep             `json:"steps,omitempty"`
  5375  	Type              FormType               `json:"type,omitempty"`
  5376  }
  5377  
  5378  /**
  5379   * Request to authenticate with WebAuthn
  5380   *
  5381   * @author Spencer Witt
  5382   */
  5383  type WebAuthnPublicKeyAuthenticationRequest struct {
  5384  	ClientExtensionResults WebAuthnExtensionsClientOutputs             `json:"clientExtensionResults,omitempty"`
  5385  	Id                     string                                      `json:"id,omitempty"`
  5386  	Response               WebAuthnAuthenticatorAuthenticationResponse `json:"response,omitempty"`
  5387  	RpId                   string                                      `json:"rpId,omitempty"`
  5388  	Type                   string                                      `json:"type,omitempty"`
  5389  }
  5390  
  5391  /**
  5392   * Available JSON Web Algorithms (JWA) as described in RFC 7518 available for this JWT implementation.
  5393   *
  5394   * @author Daniel DeGroff
  5395   */
  5396  type Algorithm string
  5397  
  5398  func (e Algorithm) String() string {
  5399  	return string(e)
  5400  }
  5401  
  5402  const (
  5403  	Algorithm_ES256 Algorithm = "ES256"
  5404  	Algorithm_ES384 Algorithm = "ES384"
  5405  	Algorithm_ES512 Algorithm = "ES512"
  5406  	Algorithm_HS256 Algorithm = "HS256"
  5407  	Algorithm_HS384 Algorithm = "HS384"
  5408  	Algorithm_HS512 Algorithm = "HS512"
  5409  	Algorithm_PS256 Algorithm = "PS256"
  5410  	Algorithm_PS384 Algorithm = "PS384"
  5411  	Algorithm_PS512 Algorithm = "PS512"
  5412  	Algorithm_RS256 Algorithm = "RS256"
  5413  	Algorithm_RS384 Algorithm = "RS384"
  5414  	Algorithm_RS512 Algorithm = "RS512"
  5415  	Algorithm_None  Algorithm = "none"
  5416  )
  5417  
  5418  /**
  5419   * Search request for Identity Providers
  5420   *
  5421   * @author Spencer Witt
  5422   */
  5423  type IdentityProviderSearchRequest struct {
  5424  	Search IdentityProviderSearchCriteria `json:"search,omitempty"`
  5425  }
  5426  
  5427  /**
  5428   * The use type of a key.
  5429   *
  5430   * @author Daniel DeGroff
  5431   */
  5432  type KeyUse string
  5433  
  5434  func (e KeyUse) String() string {
  5435  	return string(e)
  5436  }
  5437  
  5438  const (
  5439  	KeyUse_SignOnly      KeyUse = "SignOnly"
  5440  	KeyUse_SignAndVerify KeyUse = "SignAndVerify"
  5441  	KeyUse_VerifyOnly    KeyUse = "VerifyOnly"
  5442  )
  5443  
  5444  type FamilyRole string
  5445  
  5446  func (e FamilyRole) String() string {
  5447  	return string(e)
  5448  }
  5449  
  5450  const (
  5451  	FamilyRole_Child FamilyRole = "Child"
  5452  	FamilyRole_Teen  FamilyRole = "Teen"
  5453  	FamilyRole_Adult FamilyRole = "Adult"
  5454  )
  5455  
  5456  /**
  5457   * Entity API request object.
  5458   *
  5459   * @author Brian Pontarelli
  5460   */
  5461  type EntityRequest struct {
  5462  	Entity Entity `json:"entity,omitempty"`
  5463  }
  5464  
  5465  /**
  5466   * Response for the system configuration API.
  5467   *
  5468   * @author Brian Pontarelli
  5469   */
  5470  type SystemConfigurationResponse struct {
  5471  	BaseHTTPResponse
  5472  	SystemConfiguration SystemConfiguration `json:"systemConfiguration,omitempty"`
  5473  }
  5474  
  5475  func (b *SystemConfigurationResponse) SetStatus(status int) {
  5476  	b.StatusCode = status
  5477  }
  5478  
  5479  type ActionData struct {
  5480  	ActioneeUserId string   `json:"actioneeUserId,omitempty"`
  5481  	ActionerUserId string   `json:"actionerUserId,omitempty"`
  5482  	ApplicationIds []string `json:"applicationIds,omitempty"`
  5483  	Comment        string   `json:"comment,omitempty"`
  5484  	EmailUser      bool     `json:"emailUser"`
  5485  	Expiry         int64    `json:"expiry,omitempty"`
  5486  	NotifyUser     bool     `json:"notifyUser"`
  5487  	Option         string   `json:"option,omitempty"`
  5488  	ReasonId       string   `json:"reasonId,omitempty"`
  5489  	UserActionId   string   `json:"userActionId,omitempty"`
  5490  }
  5491  
  5492  type APIKeyMetaData struct {
  5493  	Attributes map[string]string `json:"attributes,omitempty"`
  5494  }
  5495  
  5496  /**
  5497   * @author Daniel DeGroff
  5498   */
  5499  type TenantRateLimitConfiguration struct {
  5500  	FailedLogin                  RateLimitedRequestConfiguration `json:"failedLogin,omitempty"`
  5501  	ForgotPassword               RateLimitedRequestConfiguration `json:"forgotPassword,omitempty"`
  5502  	SendEmailVerification        RateLimitedRequestConfiguration `json:"sendEmailVerification,omitempty"`
  5503  	SendPasswordless             RateLimitedRequestConfiguration `json:"sendPasswordless,omitempty"`
  5504  	SendRegistrationVerification RateLimitedRequestConfiguration `json:"sendRegistrationVerification,omitempty"`
  5505  	SendTwoFactor                RateLimitedRequestConfiguration `json:"sendTwoFactor,omitempty"`
  5506  }
  5507  
  5508  /**
  5509   * @author Daniel DeGroff
  5510   */
  5511  type BaseLoginRequest struct {
  5512  	BaseEventRequest
  5513  	ApplicationId string   `json:"applicationId,omitempty"`
  5514  	IpAddress     string   `json:"ipAddress,omitempty"`
  5515  	MetaData      MetaData `json:"metaData,omitempty"`
  5516  	NewDevice     bool     `json:"newDevice"`
  5517  	NoJWT         bool     `json:"noJWT"`
  5518  }
  5519  
  5520  /**
  5521   * Nintendo gaming login provider.
  5522   *
  5523   * @author Brett Pontarelli
  5524   */
  5525  type NintendoIdentityProvider struct {
  5526  	BaseIdentityProvider
  5527  	ButtonText    string `json:"buttonText,omitempty"`
  5528  	ClientId      string `json:"client_id,omitempty"`
  5529  	ClientSecret  string `json:"client_secret,omitempty"`
  5530  	EmailClaim    string `json:"emailClaim,omitempty"`
  5531  	Scope         string `json:"scope,omitempty"`
  5532  	UniqueIdClaim string `json:"uniqueIdClaim,omitempty"`
  5533  	UsernameClaim string `json:"usernameClaim,omitempty"`
  5534  }
  5535  
  5536  /**
  5537   * Models the User Update Event once it is completed. This cannot be transactional.
  5538   *
  5539   * @author Daniel DeGroff
  5540   */
  5541  type UserUpdateCompleteEvent struct {
  5542  	BaseEvent
  5543  	Original User `json:"original,omitempty"`
  5544  	User     User `json:"user,omitempty"`
  5545  }
  5546  
  5547  /**
  5548   * The transaction types for Webhooks and other event systems within FusionAuth.
  5549   *
  5550   * @author Brian Pontarelli
  5551   */
  5552  type TransactionType string
  5553  
  5554  func (e TransactionType) String() string {
  5555  	return string(e)
  5556  }
  5557  
  5558  const (
  5559  	TransactionType_None             TransactionType = "None"
  5560  	TransactionType_Any              TransactionType = "Any"
  5561  	TransactionType_SimpleMajority   TransactionType = "SimpleMajority"
  5562  	TransactionType_SuperMajority    TransactionType = "SuperMajority"
  5563  	TransactionType_AbsoluteMajority TransactionType = "AbsoluteMajority"
  5564  )
  5565  
  5566  /**
  5567   * Models the User Login Success Event.
  5568   *
  5569   * @author Daniel DeGroff
  5570   */
  5571  type UserLoginSuccessEvent struct {
  5572  	BaseEvent
  5573  	ApplicationId        string `json:"applicationId,omitempty"`
  5574  	AuthenticationType   string `json:"authenticationType,omitempty"`
  5575  	ConnectorId          string `json:"connectorId,omitempty"`
  5576  	IdentityProviderId   string `json:"identityProviderId,omitempty"`
  5577  	IdentityProviderName string `json:"identityProviderName,omitempty"`
  5578  	IpAddress            string `json:"ipAddress,omitempty"`
  5579  	User                 User   `json:"user,omitempty"`
  5580  }
  5581  
  5582  /**
  5583   * Group Member Delete Request
  5584   *
  5585   * @author Daniel DeGroff
  5586   */
  5587  type MemberDeleteRequest struct {
  5588  	MemberIds []string            `json:"memberIds,omitempty"`
  5589  	Members   map[string][]string `json:"members,omitempty"`
  5590  }
  5591  
  5592  /**
  5593   * Registration API request object.
  5594   *
  5595   * @author Brian Pontarelli
  5596   */
  5597  type RegistrationResponse struct {
  5598  	BaseHTTPResponse
  5599  	RefreshToken                        string           `json:"refreshToken,omitempty"`
  5600  	Registration                        UserRegistration `json:"registration,omitempty"`
  5601  	RegistrationVerificationId          string           `json:"registrationVerificationId,omitempty"`
  5602  	RegistrationVerificationOneTimeCode string           `json:"registrationVerificationOneTimeCode,omitempty"`
  5603  	Token                               string           `json:"token,omitempty"`
  5604  	TokenExpirationInstant              int64            `json:"tokenExpirationInstant,omitempty"`
  5605  	User                                User             `json:"user,omitempty"`
  5606  }
  5607  
  5608  func (b *RegistrationResponse) SetStatus(status int) {
  5609  	b.StatusCode = status
  5610  }
  5611  
  5612  /**
  5613   * Models the User Update Registration Event.
  5614   * <p>
  5615   * This is different than user.registration.update in that it is sent after this event completes, this cannot be transactional.
  5616   *
  5617   * @author Daniel DeGroff
  5618   */
  5619  type UserRegistrationUpdateCompleteEvent struct {
  5620  	BaseEvent
  5621  	ApplicationId string           `json:"applicationId,omitempty"`
  5622  	Original      UserRegistration `json:"original,omitempty"`
  5623  	Registration  UserRegistration `json:"registration,omitempty"`
  5624  	User          User             `json:"user,omitempty"`
  5625  }
  5626  
  5627  /**
  5628   * Search response for Themes
  5629   *
  5630   * @author Mark Manes
  5631   */
  5632  type ThemeSearchResponse struct {
  5633  	BaseHTTPResponse
  5634  	Themes []Theme `json:"themes,omitempty"`
  5635  	Total  int64   `json:"total,omitempty"`
  5636  }
  5637  
  5638  func (b *ThemeSearchResponse) SetStatus(status int) {
  5639  	b.StatusCode = status
  5640  }
  5641  
  5642  /**
  5643   * Used to express whether the Relying Party requires <a href="https://www.w3.org/TR/webauthn-2/#user-verification">user verification</a> for the
  5644   * current operation.
  5645   *
  5646   * @author Spencer Witt
  5647   */
  5648  type UserVerificationRequirement string
  5649  
  5650  func (e UserVerificationRequirement) String() string {
  5651  	return string(e)
  5652  }
  5653  
  5654  const (
  5655  	UserVerificationRequirement_Required    UserVerificationRequirement = "required"
  5656  	UserVerificationRequirement_Preferred   UserVerificationRequirement = "preferred"
  5657  	UserVerificationRequirement_Discouraged UserVerificationRequirement = "discouraged"
  5658  )
  5659  
  5660  /**
  5661   * @author Trevor Smith
  5662   */
  5663  type DeviceResponse struct {
  5664  	BaseHTTPResponse
  5665  	DeviceCode              string `json:"device_code,omitempty"`
  5666  	ExpiresIn               int    `json:"expires_in,omitempty"`
  5667  	Interval                int    `json:"interval,omitempty"`
  5668  	UserCode                string `json:"user_code,omitempty"`
  5669  	VerificationUri         string `json:"verification_uri,omitempty"`
  5670  	VerificationUriComplete string `json:"verification_uri_complete,omitempty"`
  5671  }
  5672  
  5673  func (b *DeviceResponse) SetStatus(status int) {
  5674  	b.StatusCode = status
  5675  }
  5676  
  5677  /**
  5678   * Search criteria for Email templates
  5679   *
  5680   * @author Mark Manes
  5681   */
  5682  type EmailTemplateSearchCriteria struct {
  5683  	BaseSearchCriteria
  5684  	Name string `json:"name,omitempty"`
  5685  }
  5686  
  5687  type APIKeyPermissions struct {
  5688  	Endpoints map[string][]string `json:"endpoints,omitempty"`
  5689  }
  5690  
  5691  /**
  5692   * @author Brian Pontarelli
  5693   */
  5694  type BaseElasticSearchCriteria struct {
  5695  	BaseSearchCriteria
  5696  	AccurateTotal bool        `json:"accurateTotal"`
  5697  	Ids           []string    `json:"ids,omitempty"`
  5698  	NextResults   string      `json:"nextResults,omitempty"`
  5699  	Query         string      `json:"query,omitempty"`
  5700  	QueryString   string      `json:"queryString,omitempty"`
  5701  	SortFields    []SortField `json:"sortFields,omitempty"`
  5702  }
  5703  
  5704  /**
  5705   * Search request for IP ACLs .
  5706   *
  5707   * @author Brett Guy
  5708   */
  5709  type IPAccessControlListSearchRequest struct {
  5710  	Search IPAccessControlListSearchCriteria `json:"search,omitempty"`
  5711  }
  5712  
  5713  /**
  5714   * The Application Scope API request object.
  5715   *
  5716   * @author Spencer Witt
  5717   */
  5718  type ApplicationOAuthScopeRequest struct {
  5719  	Scope ApplicationOAuthScope `json:"scope,omitempty"`
  5720  }
  5721  
  5722  type LoginConfiguration struct {
  5723  	AllowTokenRefresh     bool `json:"allowTokenRefresh"`
  5724  	GenerateRefreshTokens bool `json:"generateRefreshTokens"`
  5725  	RequireAuthentication bool `json:"requireAuthentication"`
  5726  }
  5727  
  5728  /**
  5729   * Models the Group Member Add Event.
  5730   *
  5731   * @author Daniel DeGroff
  5732   */
  5733  type GroupMemberAddEvent struct {
  5734  	BaseEvent
  5735  	Group   Group         `json:"group,omitempty"`
  5736  	Members []GroupMember `json:"members,omitempty"`
  5737  }
  5738  
  5739  /**
  5740   * Key API request object.
  5741   *
  5742   * @author Daniel DeGroff
  5743   */
  5744  type KeyRequest struct {
  5745  	Key Key `json:"key,omitempty"`
  5746  }
  5747  
  5748  /**
  5749   * Event log response.
  5750   *
  5751   * @author Brian Pontarelli
  5752   */
  5753  type EventLogSearchResponse struct {
  5754  	BaseHTTPResponse
  5755  	EventLogs []EventLog `json:"eventLogs,omitempty"`
  5756  	Total     int64      `json:"total,omitempty"`
  5757  }
  5758  
  5759  func (b *EventLogSearchResponse) SetStatus(status int) {
  5760  	b.StatusCode = status
  5761  }
  5762  
  5763  type TwoFactorTrust struct {
  5764  	ApplicationId string `json:"applicationId,omitempty"`
  5765  	Expiration    int64  `json:"expiration,omitempty"`
  5766  	StartInstant  int64  `json:"startInstant,omitempty"`
  5767  }
  5768  
  5769  /**
  5770   * Application-level configuration for WebAuthn
  5771   *
  5772   * @author Daniel DeGroff
  5773   */
  5774  type ApplicationWebAuthnConfiguration struct {
  5775  	Enableable
  5776  	BootstrapWorkflow        ApplicationWebAuthnWorkflowConfiguration `json:"bootstrapWorkflow,omitempty"`
  5777  	ReauthenticationWorkflow ApplicationWebAuthnWorkflowConfiguration `json:"reauthenticationWorkflow,omitempty"`
  5778  }
  5779  
  5780  /**
  5781   * Models a generic connector.
  5782   *
  5783   * @author Trevor Smith
  5784   */
  5785  type GenericConnectorConfiguration struct {
  5786  	BaseConnectorConfiguration
  5787  	AuthenticationURL          string            `json:"authenticationURL,omitempty"`
  5788  	ConnectTimeout             int               `json:"connectTimeout,omitempty"`
  5789  	Headers                    map[string]string `json:"headers,omitempty"`
  5790  	HttpAuthenticationPassword string            `json:"httpAuthenticationPassword,omitempty"`
  5791  	HttpAuthenticationUsername string            `json:"httpAuthenticationUsername,omitempty"`
  5792  	ReadTimeout                int               `json:"readTimeout,omitempty"`
  5793  	SslCertificateKeyId        string            `json:"sslCertificateKeyId,omitempty"`
  5794  }
  5795  
  5796  /**
  5797   * @author Daniel DeGroff
  5798   */
  5799  type MessengerTransport struct {
  5800  }
  5801  
  5802  /**
  5803   * @author Daniel DeGroff
  5804   */
  5805  type IdentityProviderTenantConfiguration struct {
  5806  	Data               map[string]interface{}                 `json:"data,omitempty"`
  5807  	LimitUserLinkCount IdentityProviderLimitUserLinkingPolicy `json:"limitUserLinkCount,omitempty"`
  5808  }
  5809  
  5810  /**
  5811   * @author Brian Pontarelli
  5812   */
  5813  type AuditLogSearchCriteria struct {
  5814  	BaseSearchCriteria
  5815  	End      int64  `json:"end,omitempty"`
  5816  	Message  string `json:"message,omitempty"`
  5817  	NewValue string `json:"newValue,omitempty"`
  5818  	OldValue string `json:"oldValue,omitempty"`
  5819  	Reason   string `json:"reason,omitempty"`
  5820  	Start    int64  `json:"start,omitempty"`
  5821  	User     string `json:"user,omitempty"`
  5822  }
  5823  
  5824  /**
  5825   * Refresh Token Import request.
  5826   *
  5827   * @author Brett Guy
  5828   */
  5829  type RefreshTokenImportRequest struct {
  5830  	RefreshTokens         []RefreshToken `json:"refreshTokens,omitempty"`
  5831  	ValidateDbConstraints bool           `json:"validateDbConstraints"`
  5832  }
  5833  
  5834  /**
  5835   * WebAuthn Credential API response
  5836   *
  5837   * @author Spencer Witt
  5838   */
  5839  type WebAuthnCredentialResponse struct {
  5840  	BaseHTTPResponse
  5841  	Credential  WebAuthnCredential   `json:"credential,omitempty"`
  5842  	Credentials []WebAuthnCredential `json:"credentials,omitempty"`
  5843  }
  5844  
  5845  func (b *WebAuthnCredentialResponse) SetStatus(status int) {
  5846  	b.StatusCode = status
  5847  }
  5848  
  5849  /**
  5850   * @author Trevor Smith
  5851   */
  5852  type ConnectorResponse struct {
  5853  	BaseHTTPResponse
  5854  	Connector  BaseConnectorConfiguration   `json:"connector,omitempty"`
  5855  	Connectors []BaseConnectorConfiguration `json:"connectors,omitempty"`
  5856  }
  5857  
  5858  func (b *ConnectorResponse) SetStatus(status int) {
  5859  	b.StatusCode = status
  5860  }
  5861  
  5862  /**
  5863   * Models a User consent.
  5864   *
  5865   * @author Daniel DeGroff
  5866   */
  5867  type UserConsent struct {
  5868  	Consent           Consent                `json:"consent,omitempty"`
  5869  	ConsentId         string                 `json:"consentId,omitempty"`
  5870  	Data              map[string]interface{} `json:"data,omitempty"`
  5871  	GiverUserId       string                 `json:"giverUserId,omitempty"`
  5872  	Id                string                 `json:"id,omitempty"`
  5873  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  5874  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  5875  	Status            ConsentStatus          `json:"status,omitempty"`
  5876  	UserId            string                 `json:"userId,omitempty"`
  5877  	Values            []string               `json:"values,omitempty"`
  5878  }
  5879  
  5880  /**
  5881   * Steam API modes.
  5882   *
  5883   * @author Daniel DeGroff
  5884   */
  5885  type SteamAPIMode string
  5886  
  5887  func (e SteamAPIMode) String() string {
  5888  	return string(e)
  5889  }
  5890  
  5891  const (
  5892  	SteamAPIMode_Public  SteamAPIMode = "Public"
  5893  	SteamAPIMode_Partner SteamAPIMode = "Partner"
  5894  )
  5895  
  5896  /**
  5897   * Request for the Logout API that can be used as an alternative to URL parameters.
  5898   *
  5899   * @author Brian Pontarelli
  5900   */
  5901  type LogoutRequest struct {
  5902  	BaseEventRequest
  5903  	Global       bool   `json:"global"`
  5904  	RefreshToken string `json:"refreshToken,omitempty"`
  5905  }
  5906  
  5907  /**
  5908   * @author Daniel DeGroff
  5909   */
  5910  type LookupResponse struct {
  5911  	BaseHTTPResponse
  5912  	IdentityProvider IdentityProviderDetails `json:"identityProvider,omitempty"`
  5913  }
  5914  
  5915  func (b *LookupResponse) SetStatus(status int) {
  5916  	b.StatusCode = status
  5917  }
  5918  
  5919  /**
  5920   * Models a family grouping of users.
  5921   *
  5922   * @author Brian Pontarelli
  5923   */
  5924  type Family struct {
  5925  	Id                string         `json:"id,omitempty"`
  5926  	InsertInstant     int64          `json:"insertInstant,omitempty"`
  5927  	LastUpdateInstant int64          `json:"lastUpdateInstant,omitempty"`
  5928  	Members           []FamilyMember `json:"members,omitempty"`
  5929  }
  5930  
  5931  type ProviderLambdaConfiguration struct {
  5932  	ReconcileId string `json:"reconcileId,omitempty"`
  5933  }
  5934  
  5935  /**
  5936   * Search response for entity types.
  5937   *
  5938   * @author Brian Pontarelli
  5939   */
  5940  type EntityTypeSearchResponse struct {
  5941  	BaseHTTPResponse
  5942  	EntityTypes []EntityType `json:"entityTypes,omitempty"`
  5943  	Total       int64        `json:"total,omitempty"`
  5944  }
  5945  
  5946  func (b *EntityTypeSearchResponse) SetStatus(status int) {
  5947  	b.StatusCode = status
  5948  }
  5949  
  5950  /**
  5951   * @author Lyle Schemmerling
  5952   */
  5953  type BaseSAMLv2IdentityProvider struct {
  5954  	BaseIdentityProvider
  5955  	EmailClaim        string `json:"emailClaim,omitempty"`
  5956  	KeyId             string `json:"keyId,omitempty"`
  5957  	UniqueIdClaim     string `json:"uniqueIdClaim,omitempty"`
  5958  	UseNameIdForEmail bool   `json:"useNameIdForEmail"`
  5959  	UsernameClaim     string `json:"usernameClaim,omitempty"`
  5960  }
  5961  
  5962  /**
  5963   * @author Daniel DeGroff
  5964   */
  5965  type LinkedInApplicationConfiguration struct {
  5966  	BaseIdentityProviderApplicationConfiguration
  5967  	ButtonText   string `json:"buttonText,omitempty"`
  5968  	ClientId     string `json:"client_id,omitempty"`
  5969  	ClientSecret string `json:"client_secret,omitempty"`
  5970  	Scope        string `json:"scope,omitempty"`
  5971  }
  5972  
  5973  /**
  5974   * @author Brian Pontarelli
  5975   */
  5976  type PreviewRequest struct {
  5977  	EmailTemplate EmailTemplate `json:"emailTemplate,omitempty"`
  5978  	Locale        string        `json:"locale,omitempty"`
  5979  }
  5980  
  5981  /**
  5982   * Request for the Refresh Token API to revoke a refresh token rather than using the URL parameters.
  5983   *
  5984   * @author Brian Pontarelli
  5985   */
  5986  type RefreshTokenRevokeRequest struct {
  5987  	BaseEventRequest
  5988  	ApplicationId string `json:"applicationId,omitempty"`
  5989  	Token         string `json:"token,omitempty"`
  5990  	UserId        string `json:"userId,omitempty"`
  5991  }
  5992  
  5993  /**
  5994   * @author Trevor Smith
  5995   */
  5996  type ChangePasswordReason string
  5997  
  5998  func (e ChangePasswordReason) String() string {
  5999  	return string(e)
  6000  }
  6001  
  6002  const (
  6003  	ChangePasswordReason_Administrative ChangePasswordReason = "Administrative"
  6004  	ChangePasswordReason_Breached       ChangePasswordReason = "Breached"
  6005  	ChangePasswordReason_Expired        ChangePasswordReason = "Expired"
  6006  	ChangePasswordReason_Validation     ChangePasswordReason = "Validation"
  6007  )
  6008  
  6009  /**
  6010   * Something that can be enabled and thus also disabled.
  6011   *
  6012   * @author Daniel DeGroff
  6013   */
  6014  type Enableable struct {
  6015  	Enabled bool `json:"enabled"`
  6016  }
  6017  
  6018  /**
  6019   * Search request for email templates
  6020   *
  6021   * @author Mark Manes
  6022   */
  6023  type EmailTemplateSearchRequest struct {
  6024  	Search EmailTemplateSearchCriteria `json:"search,omitempty"`
  6025  }
  6026  
  6027  type EmailSecurityType string
  6028  
  6029  func (e EmailSecurityType) String() string {
  6030  	return string(e)
  6031  }
  6032  
  6033  const (
  6034  	EmailSecurityType_NONE EmailSecurityType = "NONE"
  6035  	EmailSecurityType_SSL  EmailSecurityType = "SSL"
  6036  	EmailSecurityType_TLS  EmailSecurityType = "TLS"
  6037  )
  6038  
  6039  /**
  6040   * Provides the <i>authenticator</i> with the data it needs to generate an assertion.
  6041   *
  6042   * @author Spencer Witt
  6043   */
  6044  type PublicKeyCredentialRequestOptions struct {
  6045  	AllowCredentials []PublicKeyCredentialDescriptor `json:"allowCredentials,omitempty"`
  6046  	Challenge        string                          `json:"challenge,omitempty"`
  6047  	RpId             string                          `json:"rpId,omitempty"`
  6048  	Timeout          int64                           `json:"timeout,omitempty"`
  6049  	UserVerification UserVerificationRequirement     `json:"userVerification,omitempty"`
  6050  }
  6051  
  6052  /**
  6053   * Supply additional information about the Relying Party when creating a new credential
  6054   *
  6055   * @author Spencer Witt
  6056   */
  6057  type PublicKeyCredentialRelyingPartyEntity struct {
  6058  	PublicKeyCredentialEntity
  6059  	Id string `json:"id,omitempty"`
  6060  }
  6061  
  6062  /**
  6063   * API response for User consent.
  6064   *
  6065   * @author Daniel DeGroff
  6066   */
  6067  type UserConsentResponse struct {
  6068  	BaseHTTPResponse
  6069  	UserConsent  UserConsent   `json:"userConsent,omitempty"`
  6070  	UserConsents []UserConsent `json:"userConsents,omitempty"`
  6071  }
  6072  
  6073  func (b *UserConsentResponse) SetStatus(status int) {
  6074  	b.StatusCode = status
  6075  }
  6076  
  6077  /**
  6078   * @author Daniel DeGroff
  6079   */
  6080  type BaseIdentityProviderApplicationConfiguration struct {
  6081  	Enableable
  6082  	CreateRegistration bool                   `json:"createRegistration"`
  6083  	Data               map[string]interface{} `json:"data,omitempty"`
  6084  }
  6085  
  6086  /**
  6087   * API response for refreshing a JWT with a Refresh Token.
  6088   * <p>
  6089   * Using a different response object from RefreshTokenResponse because the retrieve response will return an object for refreshToken, and this is a
  6090   * string.
  6091   *
  6092   * @author Daniel DeGroff
  6093   */
  6094  type JWTRefreshResponse struct {
  6095  	BaseHTTPResponse
  6096  	RefreshToken   string `json:"refreshToken,omitempty"`
  6097  	RefreshTokenId string `json:"refreshTokenId,omitempty"`
  6098  	Token          string `json:"token,omitempty"`
  6099  }
  6100  
  6101  func (b *JWTRefreshResponse) SetStatus(status int) {
  6102  	b.StatusCode = status
  6103  }
  6104  
  6105  /**
  6106   * @author Brian Pontarelli
  6107   */
  6108  type Count struct {
  6109  	Count    int `json:"count,omitempty"`
  6110  	Interval int `json:"interval,omitempty"`
  6111  }
  6112  
  6113  /**
  6114   * @author Daniel DeGroff
  6115   */
  6116  type AuditLogExportRequest struct {
  6117  	BaseExportRequest
  6118  	Criteria AuditLogSearchCriteria `json:"criteria,omitempty"`
  6119  }
  6120  
  6121  /**
  6122   * Defines an error.
  6123   *
  6124   * @author Brian Pontarelli
  6125   */
  6126  type Error struct {
  6127  	Code    string                 `json:"code,omitempty"`
  6128  	Data    map[string]interface{} `json:"data,omitempty"`
  6129  	Message string                 `json:"message,omitempty"`
  6130  }
  6131  
  6132  /**
  6133   * API request to import an existing WebAuthn credential(s)
  6134   *
  6135   * @author Spencer Witt
  6136   */
  6137  type WebAuthnCredentialImportRequest struct {
  6138  	Credentials           []WebAuthnCredential `json:"credentials,omitempty"`
  6139  	ValidateDbConstraints bool                 `json:"validateDbConstraints"`
  6140  }
  6141  
  6142  /**
  6143   * @author Brian Pontarelli
  6144   */
  6145  type ExpiryUnit string
  6146  
  6147  func (e ExpiryUnit) String() string {
  6148  	return string(e)
  6149  }
  6150  
  6151  const (
  6152  	ExpiryUnit_MINUTES ExpiryUnit = "MINUTES"
  6153  	ExpiryUnit_HOURS   ExpiryUnit = "HOURS"
  6154  	ExpiryUnit_DAYS    ExpiryUnit = "DAYS"
  6155  	ExpiryUnit_WEEKS   ExpiryUnit = "WEEKS"
  6156  	ExpiryUnit_MONTHS  ExpiryUnit = "MONTHS"
  6157  	ExpiryUnit_YEARS   ExpiryUnit = "YEARS"
  6158  )
  6159  
  6160  /**
  6161   * @author Brett Guy
  6162   */
  6163  type MessengerType string
  6164  
  6165  func (e MessengerType) String() string {
  6166  	return string(e)
  6167  }
  6168  
  6169  const (
  6170  	MessengerType_Generic MessengerType = "Generic"
  6171  	MessengerType_Kafka   MessengerType = "Kafka"
  6172  	MessengerType_Twilio  MessengerType = "Twilio"
  6173  )
  6174  
  6175  /**
  6176   * An expandable API response.
  6177   *
  6178   * @author Daniel DeGroff
  6179   */
  6180  type ExpandableResponse struct {
  6181  	BaseHTTPResponse
  6182  	Expandable []string `json:"expandable,omitempty"`
  6183  }
  6184  
  6185  func (b *ExpandableResponse) SetStatus(status int) {
  6186  	b.StatusCode = status
  6187  }
  6188  
  6189  /**
  6190   * Search request for Themes.
  6191   *
  6192   * @author Mark Manes
  6193   */
  6194  type ThemeSearchRequest struct {
  6195  	Search ThemeSearchCriteria `json:"search,omitempty"`
  6196  }
  6197  
  6198  /**
  6199   * @author Daniel DeGroff
  6200   */
  6201  type PasswordValidationRulesResponse struct {
  6202  	BaseHTTPResponse
  6203  	PasswordValidationRules PasswordValidationRules `json:"passwordValidationRules,omitempty"`
  6204  }
  6205  
  6206  func (b *PasswordValidationRulesResponse) SetStatus(status int) {
  6207  	b.StatusCode = status
  6208  }
  6209  
  6210  /**
  6211   * API request to start a WebAuthn authentication ceremony
  6212   *
  6213   * @author Spencer Witt
  6214   */
  6215  type WebAuthnStartRequest struct {
  6216  	ApplicationId string                 `json:"applicationId,omitempty"`
  6217  	CredentialId  string                 `json:"credentialId,omitempty"`
  6218  	LoginId       string                 `json:"loginId,omitempty"`
  6219  	State         map[string]interface{} `json:"state,omitempty"`
  6220  	UserId        string                 `json:"userId,omitempty"`
  6221  	Workflow      WebAuthnWorkflow       `json:"workflow,omitempty"`
  6222  }
  6223  
  6224  /**
  6225   * A raw login record response
  6226   *
  6227   * @author Daniel DeGroff
  6228   */
  6229  type LoginRecordSearchResponse struct {
  6230  	BaseHTTPResponse
  6231  	Logins []DisplayableRawLogin `json:"logins,omitempty"`
  6232  	Total  int64                 `json:"total,omitempty"`
  6233  }
  6234  
  6235  func (b *LoginRecordSearchResponse) SetStatus(status int) {
  6236  	b.StatusCode = status
  6237  }
  6238  
  6239  /**
  6240   * Response for the registration report.
  6241   *
  6242   * @author Brian Pontarelli
  6243   */
  6244  type RegistrationReportResponse struct {
  6245  	BaseHTTPResponse
  6246  	HourlyCounts []Count `json:"hourlyCounts,omitempty"`
  6247  	Total        int64   `json:"total,omitempty"`
  6248  }
  6249  
  6250  func (b *RegistrationReportResponse) SetStatus(status int) {
  6251  	b.StatusCode = status
  6252  }
  6253  
  6254  /**
  6255   * @author Brett Guy
  6256   */
  6257  type IPAccessControlListSearchResponse struct {
  6258  	BaseHTTPResponse
  6259  	IpAccessControlLists []IPAccessControlList `json:"ipAccessControlLists,omitempty"`
  6260  	Total                int64                 `json:"total,omitempty"`
  6261  }
  6262  
  6263  func (b *IPAccessControlListSearchResponse) SetStatus(status int) {
  6264  	b.StatusCode = status
  6265  }
  6266  
  6267  /**
  6268   * @author Daniel DeGroff
  6269   */
  6270  type TwoFactorStatusResponse struct {
  6271  	BaseHTTPResponse
  6272  	Trusts           []TwoFactorTrust `json:"trusts,omitempty"`
  6273  	TwoFactorTrustId string           `json:"twoFactorTrustId,omitempty"`
  6274  }
  6275  
  6276  func (b *TwoFactorStatusResponse) SetStatus(status int) {
  6277  	b.StatusCode = status
  6278  }
  6279  
  6280  /**
  6281   * Consent search response
  6282   *
  6283   * @author Spencer Witt
  6284   */
  6285  type ConsentSearchResponse struct {
  6286  	BaseHTTPResponse
  6287  	Consents []Consent `json:"consents,omitempty"`
  6288  	Total    int64     `json:"total,omitempty"`
  6289  }
  6290  
  6291  func (b *ConsentSearchResponse) SetStatus(status int) {
  6292  	b.StatusCode = status
  6293  }
  6294  
  6295  /**
  6296   * @author Daniel DeGroff
  6297   */
  6298  type RefreshResponse struct {
  6299  	BaseHTTPResponse
  6300  }
  6301  
  6302  func (b *RefreshResponse) SetStatus(status int) {
  6303  	b.StatusCode = status
  6304  }
  6305  
  6306  /**
  6307   * Stores an message template used to distribute messages;
  6308   *
  6309   * @author Michael Sleevi
  6310   */
  6311  type MessageTemplate struct {
  6312  	Data              map[string]interface{} `json:"data,omitempty"`
  6313  	Id                string                 `json:"id,omitempty"`
  6314  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  6315  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  6316  	Name              string                 `json:"name,omitempty"`
  6317  	Type              MessageType            `json:"type,omitempty"`
  6318  }
  6319  
  6320  /**
  6321   * Models the JWT public key Refresh Token Revoke Event. This event might be for a single
  6322   * token, a user or an entire application.
  6323   *
  6324   * @author Brian Pontarelli
  6325   */
  6326  type JWTPublicKeyUpdateEvent struct {
  6327  	BaseEvent
  6328  	ApplicationIds []string `json:"applicationIds,omitempty"`
  6329  }
  6330  
  6331  /**
  6332   * @author Daniel DeGroff
  6333   */
  6334  type DeviceUserCodeResponse struct {
  6335  	BaseHTTPResponse
  6336  	ClientId       string         `json:"client_id,omitempty"`
  6337  	DeviceInfo     DeviceInfo     `json:"deviceInfo,omitempty"`
  6338  	ExpiresIn      int            `json:"expires_in,omitempty"`
  6339  	PendingIdPLink PendingIdPLink `json:"pendingIdPLink,omitempty"`
  6340  	Scope          string         `json:"scope,omitempty"`
  6341  	TenantId       string         `json:"tenantId,omitempty"`
  6342  	UserCode       string         `json:"user_code,omitempty"`
  6343  }
  6344  
  6345  func (b *DeviceUserCodeResponse) SetStatus(status int) {
  6346  	b.StatusCode = status
  6347  }
  6348  
  6349  /**
  6350   * Models an entity type that has a specific set of permissions. These are global objects and can be used across tenants.
  6351   *
  6352   * @author Brian Pontarelli
  6353   */
  6354  type EntityType struct {
  6355  	Data              map[string]interface{} `json:"data,omitempty"`
  6356  	Id                string                 `json:"id,omitempty"`
  6357  	InsertInstant     int64                  `json:"insertInstant,omitempty"`
  6358  	JwtConfiguration  EntityJWTConfiguration `json:"jwtConfiguration,omitempty"`
  6359  	LastUpdateInstant int64                  `json:"lastUpdateInstant,omitempty"`
  6360  	Name              string                 `json:"name,omitempty"`
  6361  	Permissions       []EntityTypePermission `json:"permissions,omitempty"`
  6362  }
  6363  
  6364  /**
  6365   * @author Daniel DeGroff
  6366   */
  6367  type IdentityProviderType string
  6368  
  6369  func (e IdentityProviderType) String() string {
  6370  	return string(e)
  6371  }
  6372  
  6373  const (
  6374  	IdentityProviderType_Apple              IdentityProviderType = "Apple"
  6375  	IdentityProviderType_EpicGames          IdentityProviderType = "EpicGames"
  6376  	IdentityProviderType_ExternalJWT        IdentityProviderType = "ExternalJWT"
  6377  	IdentityProviderType_Facebook           IdentityProviderType = "Facebook"
  6378  	IdentityProviderType_Google             IdentityProviderType = "Google"
  6379  	IdentityProviderType_HYPR               IdentityProviderType = "HYPR"
  6380  	IdentityProviderType_LinkedIn           IdentityProviderType = "LinkedIn"
  6381  	IdentityProviderType_Nintendo           IdentityProviderType = "Nintendo"
  6382  	IdentityProviderType_OpenIDConnect      IdentityProviderType = "OpenIDConnect"
  6383  	IdentityProviderType_SAMLv2             IdentityProviderType = "SAMLv2"
  6384  	IdentityProviderType_SAMLv2IdPInitiated IdentityProviderType = "SAMLv2IdPInitiated"
  6385  	IdentityProviderType_SonyPSN            IdentityProviderType = "SonyPSN"
  6386  	IdentityProviderType_Steam              IdentityProviderType = "Steam"
  6387  	IdentityProviderType_Twitch             IdentityProviderType = "Twitch"
  6388  	IdentityProviderType_Twitter            IdentityProviderType = "Twitter"
  6389  	IdentityProviderType_Xbox               IdentityProviderType = "Xbox"
  6390  )
  6391  
  6392  /**
  6393   * @author Seth Musselman
  6394   */
  6395  type PreviewResponse struct {
  6396  	BaseHTTPResponse
  6397  	Email  Email  `json:"email,omitempty"`
  6398  	Errors Errors `json:"errors,omitempty"`
  6399  }
  6400  
  6401  func (b *PreviewResponse) SetStatus(status int) {
  6402  	b.StatusCode = status
  6403  }
  6404  
  6405  /**
  6406   * Event to indicate kickstart has been successfully completed.
  6407   *
  6408   * @author Daniel DeGroff
  6409   */
  6410  type KickstartSuccessEvent struct {
  6411  	BaseEvent
  6412  	InstanceId string `json:"instanceId,omitempty"`
  6413  }
  6414  
  6415  /**
  6416   * @author Daniel DeGroff
  6417   */
  6418  type SystemTrustedProxyConfigurationPolicy string
  6419  
  6420  func (e SystemTrustedProxyConfigurationPolicy) String() string {
  6421  	return string(e)
  6422  }
  6423  
  6424  const (
  6425  	SystemTrustedProxyConfigurationPolicy_All            SystemTrustedProxyConfigurationPolicy = "All"
  6426  	SystemTrustedProxyConfigurationPolicy_OnlyConfigured SystemTrustedProxyConfigurationPolicy = "OnlyConfigured"
  6427  )
  6428  
  6429  /**
  6430   * @author Daniel DeGroff
  6431   */
  6432  type TenantUsernameConfiguration struct {
  6433  	Unique UniqueUsernameConfiguration `json:"unique,omitempty"`
  6434  }
  6435  
  6436  /**
  6437   * Interface for all identity providers that are passwordless and do not accept a password.
  6438   */
  6439  type PasswordlessIdentityProvider struct {
  6440  }
  6441  
  6442  /**
  6443   * @author Daniel DeGroff
  6444   */
  6445  type PasswordBreachDetection struct {
  6446  	Enableable
  6447  	MatchMode                 BreachMatchMode `json:"matchMode,omitempty"`
  6448  	NotifyUserEmailTemplateId string          `json:"notifyUserEmailTemplateId,omitempty"`
  6449  	OnLogin                   BreachAction    `json:"onLogin,omitempty"`
  6450  }
  6451  
  6452  /**
  6453   * Base-class for all FusionAuth events.
  6454   *
  6455   * @author Brian Pontarelli
  6456   */
  6457  type BaseEvent struct {
  6458  	CreateInstant int64     `json:"createInstant,omitempty"`
  6459  	Id            string    `json:"id,omitempty"`
  6460  	Info          EventInfo `json:"info,omitempty"`
  6461  	TenantId      string    `json:"tenantId,omitempty"`
  6462  	Type          EventType `json:"type,omitempty"`
  6463  }
  6464  
  6465  /**
  6466   * @author Daniel DeGroff
  6467   */
  6468  type EmailHeader struct {
  6469  	Name  string `json:"name,omitempty"`
  6470  	Value string `json:"value,omitempty"`
  6471  }
  6472  
  6473  /**
  6474   * The FormField API request object.
  6475   *
  6476   * @author Brett Guy
  6477   */
  6478  type FormFieldRequest struct {
  6479  	Field  FormField   `json:"field,omitempty"`
  6480  	Fields []FormField `json:"fields,omitempty"`
  6481  }
  6482  
  6483  /**
  6484   * @author Daniel DeGroff
  6485   */
  6486  type TwoFactorMethod struct {
  6487  	Authenticator AuthenticatorConfiguration `json:"authenticator,omitempty"`
  6488  	Email         string                     `json:"email,omitempty"`
  6489  	Id            string                     `json:"id,omitempty"`
  6490  	LastUsed      bool                       `json:"lastUsed"`
  6491  	Method        string                     `json:"method,omitempty"`
  6492  	MobilePhone   string                     `json:"mobilePhone,omitempty"`
  6493  	Secret        string                     `json:"secret,omitempty"`
  6494  }
  6495  
  6496  /**
  6497   * Models the event types that FusionAuth produces.
  6498   *
  6499   * @author Brian Pontarelli
  6500   */
  6501  type EventType string
  6502  
  6503  func (e EventType) String() string {
  6504  	return string(e)
  6505  }
  6506  
  6507  const (
  6508  	EventType_JWTPublicKeyUpdate             EventType = "jwt.public-key.update"
  6509  	EventType_JWTRefreshTokenRevoke          EventType = "jwt.refresh-token.revoke"
  6510  	EventType_JWTRefresh                     EventType = "jwt.refresh"
  6511  	EventType_AuditLogCreate                 EventType = "audit-log.create"
  6512  	EventType_EventLogCreate                 EventType = "event-log.create"
  6513  	EventType_KickstartSuccess               EventType = "kickstart.success"
  6514  	EventType_GroupCreate                    EventType = "group.create"
  6515  	EventType_GroupCreateComplete            EventType = "group.create.complete"
  6516  	EventType_GroupDelete                    EventType = "group.delete"
  6517  	EventType_GroupDeleteComplete            EventType = "group.delete.complete"
  6518  	EventType_GroupMemberAdd                 EventType = "group.member.add"
  6519  	EventType_GroupMemberAddComplete         EventType = "group.member.add.complete"
  6520  	EventType_GroupMemberRemove              EventType = "group.member.remove"
  6521  	EventType_GroupMemberRemoveComplete      EventType = "group.member.remove.complete"
  6522  	EventType_GroupMemberUpdate              EventType = "group.member.update"
  6523  	EventType_GroupMemberUpdateComplete      EventType = "group.member.update.complete"
  6524  	EventType_GroupUpdate                    EventType = "group.update"
  6525  	EventType_GroupUpdateComplete            EventType = "group.update.complete"
  6526  	EventType_UserAction                     EventType = "user.action"
  6527  	EventType_UserBulkCreate                 EventType = "user.bulk.create"
  6528  	EventType_UserCreate                     EventType = "user.create"
  6529  	EventType_UserCreateComplete             EventType = "user.create.complete"
  6530  	EventType_UserDeactivate                 EventType = "user.deactivate"
  6531  	EventType_UserDelete                     EventType = "user.delete"
  6532  	EventType_UserDeleteComplete             EventType = "user.delete.complete"
  6533  	EventType_UserEmailUpdate                EventType = "user.email.update"
  6534  	EventType_UserEmailVerified              EventType = "user.email.verified"
  6535  	EventType_UserIdentityProviderLink       EventType = "user.identity-provider.link"
  6536  	EventType_UserIdentityProviderUnlink     EventType = "user.identity-provider.unlink"
  6537  	EventType_UserLoginIdDuplicateOnCreate   EventType = "user.loginId.duplicate.create"
  6538  	EventType_UserLoginIdDuplicateOnUpdate   EventType = "user.loginId.duplicate.update"
  6539  	EventType_UserLoginFailed                EventType = "user.login.failed"
  6540  	EventType_UserLoginNewDevice             EventType = "user.login.new-device"
  6541  	EventType_UserLoginSuccess               EventType = "user.login.success"
  6542  	EventType_UserLoginSuspicious            EventType = "user.login.suspicious"
  6543  	EventType_UserPasswordBreach             EventType = "user.password.breach"
  6544  	EventType_UserPasswordResetSend          EventType = "user.password.reset.send"
  6545  	EventType_UserPasswordResetStart         EventType = "user.password.reset.start"
  6546  	EventType_UserPasswordResetSuccess       EventType = "user.password.reset.success"
  6547  	EventType_UserPasswordUpdate             EventType = "user.password.update"
  6548  	EventType_UserReactivate                 EventType = "user.reactivate"
  6549  	EventType_UserRegistrationCreate         EventType = "user.registration.create"
  6550  	EventType_UserRegistrationCreateComplete EventType = "user.registration.create.complete"
  6551  	EventType_UserRegistrationDelete         EventType = "user.registration.delete"
  6552  	EventType_UserRegistrationDeleteComplete EventType = "user.registration.delete.complete"
  6553  	EventType_UserRegistrationUpdate         EventType = "user.registration.update"
  6554  	EventType_UserRegistrationUpdateComplete EventType = "user.registration.update.complete"
  6555  	EventType_UserRegistrationVerified       EventType = "user.registration.verified"
  6556  	EventType_UserTwoFactorMethodAdd         EventType = "user.two-factor.method.add"
  6557  	EventType_UserTwoFactorMethodRemove      EventType = "user.two-factor.method.remove"
  6558  	EventType_UserUpdate                     EventType = "user.update"
  6559  	EventType_UserUpdateComplete             EventType = "user.update.complete"
  6560  	EventType_Test                           EventType = "test"
  6561  )
  6562  
  6563  /**
  6564   * Tenant search response
  6565   *
  6566   * @author Mark Manes
  6567   */
  6568  type TenantSearchResponse struct {
  6569  	BaseHTTPResponse
  6570  	Tenants []Tenant `json:"tenants,omitempty"`
  6571  	Total   int64    `json:"total,omitempty"`
  6572  }
  6573  
  6574  func (b *TenantSearchResponse) SetStatus(status int) {
  6575  	b.StatusCode = status
  6576  }
  6577  
  6578  /**
  6579   * Search API request.
  6580   *
  6581   * @author Brian Pontarelli
  6582   */
  6583  type SearchRequest struct {
  6584  	ExpandableRequest
  6585  	Search UserSearchCriteria `json:"search,omitempty"`
  6586  }
  6587  
  6588  /**
  6589   * Lambda search response
  6590   *
  6591   * @author Mark Manes
  6592   */
  6593  type LambdaSearchResponse struct {
  6594  	BaseHTTPResponse
  6595  	Lambdas []Lambda `json:"lambdas,omitempty"`
  6596  	Total   int64    `json:"total,omitempty"`
  6597  }
  6598  
  6599  func (b *LambdaSearchResponse) SetStatus(status int) {
  6600  	b.StatusCode = status
  6601  }
  6602  
  6603  type Templates struct {
  6604  	AccountEdit                               string `json:"accountEdit,omitempty"`
  6605  	AccountIndex                              string `json:"accountIndex,omitempty"`
  6606  	AccountTwoFactorDisable                   string `json:"accountTwoFactorDisable,omitempty"`
  6607  	AccountTwoFactorEnable                    string `json:"accountTwoFactorEnable,omitempty"`
  6608  	AccountTwoFactorIndex                     string `json:"accountTwoFactorIndex,omitempty"`
  6609  	AccountWebAuthnAdd                        string `json:"accountWebAuthnAdd,omitempty"`
  6610  	AccountWebAuthnDelete                     string `json:"accountWebAuthnDelete,omitempty"`
  6611  	AccountWebAuthnIndex                      string `json:"accountWebAuthnIndex,omitempty"`
  6612  	ConfirmationRequired                      string `json:"confirmationRequired,omitempty"`
  6613  	EmailComplete                             string `json:"emailComplete,omitempty"`
  6614  	EmailSend                                 string `json:"emailSend,omitempty"`
  6615  	EmailSent                                 string `json:"emailSent,omitempty"`
  6616  	EmailVerificationRequired                 string `json:"emailVerificationRequired,omitempty"`
  6617  	EmailVerify                               string `json:"emailVerify,omitempty"`
  6618  	Helpers                                   string `json:"helpers,omitempty"`
  6619  	Index                                     string `json:"index,omitempty"`
  6620  	Oauth2Authorize                           string `json:"oauth2Authorize,omitempty"`
  6621  	Oauth2AuthorizedNotRegistered             string `json:"oauth2AuthorizedNotRegistered,omitempty"`
  6622  	Oauth2ChildRegistrationNotAllowed         string `json:"oauth2ChildRegistrationNotAllowed,omitempty"`
  6623  	Oauth2ChildRegistrationNotAllowedComplete string `json:"oauth2ChildRegistrationNotAllowedComplete,omitempty"`
  6624  	Oauth2CompleteRegistration                string `json:"oauth2CompleteRegistration,omitempty"`
  6625  	Oauth2Consent                             string `json:"oauth2Consent,omitempty"`
  6626  	Oauth2Device                              string `json:"oauth2Device,omitempty"`
  6627  	Oauth2DeviceComplete                      string `json:"oauth2DeviceComplete,omitempty"`
  6628  	Oauth2Error                               string `json:"oauth2Error,omitempty"`
  6629  	Oauth2Logout                              string `json:"oauth2Logout,omitempty"`
  6630  	Oauth2Passwordless                        string `json:"oauth2Passwordless,omitempty"`
  6631  	Oauth2Register                            string `json:"oauth2Register,omitempty"`
  6632  	Oauth2StartIdPLink                        string `json:"oauth2StartIdPLink,omitempty"`
  6633  	Oauth2TwoFactor                           string `json:"oauth2TwoFactor,omitempty"`
  6634  	Oauth2TwoFactorEnable                     string `json:"oauth2TwoFactorEnable,omitempty"`
  6635  	Oauth2TwoFactorEnableComplete             string `json:"oauth2TwoFactorEnableComplete,omitempty"`
  6636  	Oauth2TwoFactorMethods                    string `json:"oauth2TwoFactorMethods,omitempty"`
  6637  	Oauth2Wait                                string `json:"oauth2Wait,omitempty"`
  6638  	Oauth2WebAuthn                            string `json:"oauth2WebAuthn,omitempty"`
  6639  	Oauth2WebAuthnReauth                      string `json:"oauth2WebAuthnReauth,omitempty"`
  6640  	Oauth2WebAuthnReauthEnable                string `json:"oauth2WebAuthnReauthEnable,omitempty"`
  6641  	PasswordChange                            string `json:"passwordChange,omitempty"`
  6642  	PasswordComplete                          string `json:"passwordComplete,omitempty"`
  6643  	PasswordForgot                            string `json:"passwordForgot,omitempty"`
  6644  	PasswordSent                              string `json:"passwordSent,omitempty"`
  6645  	RegistrationComplete                      string `json:"registrationComplete,omitempty"`
  6646  	RegistrationSend                          string `json:"registrationSend,omitempty"`
  6647  	RegistrationSent                          string `json:"registrationSent,omitempty"`
  6648  	RegistrationVerificationRequired          string `json:"registrationVerificationRequired,omitempty"`
  6649  	RegistrationVerify                        string `json:"registrationVerify,omitempty"`
  6650  	Samlv2Logout                              string `json:"samlv2Logout,omitempty"`
  6651  	Unauthorized                              string `json:"unauthorized,omitempty"`
  6652  }
  6653  
  6654  /**
  6655   * Search request for Lambdas
  6656   *
  6657   * @author Mark Manes
  6658   */
  6659  type LambdaSearchRequest struct {
  6660  	Search LambdaSearchCriteria `json:"search,omitempty"`
  6661  }
  6662  
  6663  /**
  6664   * Models the User Password Reset Send Event.
  6665   *
  6666   * @author Daniel DeGroff
  6667   */
  6668  type UserPasswordResetSendEvent struct {
  6669  	BaseEvent
  6670  	User User `json:"user,omitempty"`
  6671  }
  6672  
  6673  /**
  6674   * The Integration Request
  6675   *
  6676   * @author Daniel DeGroff
  6677   */
  6678  type IntegrationRequest struct {
  6679  	Integrations Integrations `json:"integrations,omitempty"`
  6680  }
  6681  
  6682  type TOTPAlgorithm string
  6683  
  6684  func (e TOTPAlgorithm) String() string {
  6685  	return string(e)
  6686  }
  6687  
  6688  const (
  6689  	TOTPAlgorithm_HmacSHA1   TOTPAlgorithm = "HmacSHA1"
  6690  	TOTPAlgorithm_HmacSHA256 TOTPAlgorithm = "HmacSHA256"
  6691  	TOTPAlgorithm_HmacSHA512 TOTPAlgorithm = "HmacSHA512"
  6692  )
  6693  
  6694  type LDAPSecurityMethod string
  6695  
  6696  func (e LDAPSecurityMethod) String() string {
  6697  	return string(e)
  6698  }
  6699  
  6700  const (
  6701  	LDAPSecurityMethod_None     LDAPSecurityMethod = "None"
  6702  	LDAPSecurityMethod_LDAPS    LDAPSecurityMethod = "LDAPS"
  6703  	LDAPSecurityMethod_StartTLS LDAPSecurityMethod = "StartTLS"
  6704  )
  6705  
  6706  /**
  6707   * User API delete request object.
  6708   *
  6709   * @author Daniel DeGroff
  6710   */
  6711  type UserDeleteRequest struct {
  6712  	BaseEventRequest
  6713  	DryRun      bool     `json:"dryRun"`
  6714  	HardDelete  bool     `json:"hardDelete"`
  6715  	Limit       int      `json:"limit,omitempty"`
  6716  	Query       string   `json:"query,omitempty"`
  6717  	QueryString string   `json:"queryString,omitempty"`
  6718  	UserIds     []string `json:"userIds,omitempty"`
  6719  }
  6720  
  6721  /**
  6722   * @author Daniel DeGroff
  6723   */
  6724  type IdentityProviderStartLoginRequest struct {
  6725  	BaseLoginRequest
  6726  	Data               map[string]string      `json:"data,omitempty"`
  6727  	IdentityProviderId string                 `json:"identityProviderId,omitempty"`
  6728  	LoginId            string                 `json:"loginId,omitempty"`
  6729  	State              map[string]interface{} `json:"state,omitempty"`
  6730  }
  6731  
  6732  type UniqueUsernameStrategy string
  6733  
  6734  func (e UniqueUsernameStrategy) String() string {
  6735  	return string(e)
  6736  }
  6737  
  6738  const (
  6739  	UniqueUsernameStrategy_Always      UniqueUsernameStrategy = "Always"
  6740  	UniqueUsernameStrategy_OnCollision UniqueUsernameStrategy = "OnCollision"
  6741  )
  6742  
  6743  /**
  6744   * @author Daniel DeGroff
  6745   */
  6746  type ExternalJWTApplicationConfiguration struct {
  6747  	BaseIdentityProviderApplicationConfiguration
  6748  }
  6749  
  6750  /**
  6751   * @author Brian Pontarelli
  6752   */
  6753  type LoginResponse struct {
  6754  	BaseHTTPResponse
  6755  	Actions                    []LoginPreventedResponse `json:"actions,omitempty"`
  6756  	ChangePasswordId           string                   `json:"changePasswordId,omitempty"`
  6757  	ChangePasswordReason       ChangePasswordReason     `json:"changePasswordReason,omitempty"`
  6758  	ConfigurableMethods        []string                 `json:"configurableMethods,omitempty"`
  6759  	EmailVerificationId        string                   `json:"emailVerificationId,omitempty"`
  6760  	Methods                    []TwoFactorMethod        `json:"methods,omitempty"`
  6761  	PendingIdPLinkId           string                   `json:"pendingIdPLinkId,omitempty"`
  6762  	RefreshToken               string                   `json:"refreshToken,omitempty"`
  6763  	RefreshTokenId             string                   `json:"refreshTokenId,omitempty"`
  6764  	RegistrationVerificationId string                   `json:"registrationVerificationId,omitempty"`
  6765  	State                      map[string]interface{}   `json:"state,omitempty"`
  6766  	ThreatsDetected            []AuthenticationThreats  `json:"threatsDetected,omitempty"`
  6767  	Token                      string                   `json:"token,omitempty"`
  6768  	TokenExpirationInstant     int64                    `json:"tokenExpirationInstant,omitempty"`
  6769  	TrustToken                 string                   `json:"trustToken,omitempty"`
  6770  	TwoFactorId                string                   `json:"twoFactorId,omitempty"`
  6771  	TwoFactorTrustId           string                   `json:"twoFactorTrustId,omitempty"`
  6772  	User                       User                     `json:"user,omitempty"`
  6773  }
  6774  
  6775  func (b *LoginResponse) SetStatus(status int) {
  6776  	b.StatusCode = status
  6777  }
  6778  
  6779  /**
  6780   * The Application Scope API response.
  6781   *
  6782   * @author Spencer Witt
  6783   */
  6784  type ApplicationOAuthScopeResponse struct {
  6785  	BaseHTTPResponse
  6786  	Scope ApplicationOAuthScope `json:"scope,omitempty"`
  6787  }
  6788  
  6789  func (b *ApplicationOAuthScopeResponse) SetStatus(status int) {
  6790  	b.StatusCode = status
  6791  }
  6792  
  6793  /**
  6794   * Search API response.
  6795   *
  6796   * @author Brian Pontarelli
  6797   */
  6798  type SearchResponse struct {
  6799  	BaseHTTPResponse
  6800  	ExpandableResponse
  6801  	NextResults string `json:"nextResults,omitempty"`
  6802  	Total       int64  `json:"total,omitempty"`
  6803  	Users       []User `json:"users,omitempty"`
  6804  }
  6805  
  6806  func (b *SearchResponse) SetStatus(status int) {
  6807  	b.StatusCode = status
  6808  }
  6809  
  6810  /**
  6811   * @author Daniel DeGroff
  6812   */
  6813  type SendResponse struct {
  6814  	BaseHTTPResponse
  6815  	AnonymousResults map[string]EmailTemplateErrors `json:"anonymousResults,omitempty"`
  6816  	Results          map[string]EmailTemplateErrors `json:"results,omitempty"`
  6817  }
  6818  
  6819  func (b *SendResponse) SetStatus(status int) {
  6820  	b.StatusCode = status
  6821  }
  6822  
  6823  /**
  6824   * @author Daniel DeGroff
  6825   */
  6826  type SystemLogsExportRequest struct {
  6827  	BaseExportRequest
  6828  	IncludeArchived bool `json:"includeArchived"`
  6829  	LastNBytes      int  `json:"lastNBytes,omitempty"`
  6830  }
  6831  
  6832  /**
  6833   * @author Daniel DeGroff
  6834   */
  6835  type ReactorMetricsResponse struct {
  6836  	BaseHTTPResponse
  6837  	Metrics ReactorMetrics `json:"metrics,omitempty"`
  6838  }
  6839  
  6840  func (b *ReactorMetricsResponse) SetStatus(status int) {
  6841  	b.StatusCode = status
  6842  }
  6843  
  6844  /**
  6845   * Location information. Useful for IP addresses and other displayable data objects.
  6846   *
  6847   * @author Brian Pontarelli
  6848   */
  6849  type Location struct {
  6850  	City          string  `json:"city,omitempty"`
  6851  	Country       string  `json:"country,omitempty"`
  6852  	DisplayString string  `json:"displayString,omitempty"`
  6853  	Latitude      float64 `json:"latitude,omitempty"`
  6854  	Longitude     float64 `json:"longitude,omitempty"`
  6855  	Region        string  `json:"region,omitempty"`
  6856  	Zipcode       string  `json:"zipcode,omitempty"`
  6857  }
  6858  
  6859  /**
  6860   * @author Brett Guy
  6861   */
  6862  type TenantAccessControlConfiguration struct {
  6863  	UiIPAccessControlListId string `json:"uiIPAccessControlListId,omitempty"`
  6864  }
  6865  
  6866  /**
  6867   * @author Daniel DeGroff
  6868   */
  6869  type TenantResponse struct {
  6870  	BaseHTTPResponse
  6871  	Tenant  Tenant   `json:"tenant,omitempty"`
  6872  	Tenants []Tenant `json:"tenants,omitempty"`
  6873  }
  6874  
  6875  func (b *TenantResponse) SetStatus(status int) {
  6876  	b.StatusCode = status
  6877  }
  6878  
  6879  /**
  6880   * @author Brett Guy
  6881   */
  6882  type TwilioMessengerConfiguration struct {
  6883  	BaseMessengerConfiguration
  6884  	AccountSID          string `json:"accountSID,omitempty"`
  6885  	AuthToken           string `json:"authToken,omitempty"`
  6886  	FromPhoneNumber     string `json:"fromPhoneNumber,omitempty"`
  6887  	MessagingServiceSid string `json:"messagingServiceSid,omitempty"`
  6888  	Url                 string `json:"url,omitempty"`
  6889  }
  6890  
  6891  /**
  6892   * @author Daniel DeGroff
  6893   */
  6894  type VerificationStrategy string
  6895  
  6896  func (e VerificationStrategy) String() string {
  6897  	return string(e)
  6898  }
  6899  
  6900  const (
  6901  	VerificationStrategy_ClickableLink VerificationStrategy = "ClickableLink"
  6902  	VerificationStrategy_FormField     VerificationStrategy = "FormField"
  6903  )
  6904  
  6905  /**
  6906   * Model a user event when a two-factor method has been removed.
  6907   *
  6908   * @author Daniel DeGroff
  6909   */
  6910  type UserTwoFactorMethodAddEvent struct {
  6911  	BaseEvent
  6912  	Method TwoFactorMethod `json:"method,omitempty"`
  6913  	User   User            `json:"user,omitempty"`
  6914  }
  6915  
  6916  /**
  6917   * API request to start a WebAuthn registration ceremony
  6918   *
  6919   * @author Spencer Witt
  6920   */
  6921  type WebAuthnRegisterStartRequest struct {
  6922  	DisplayName string           `json:"displayName,omitempty"`
  6923  	Name        string           `json:"name,omitempty"`
  6924  	UserAgent   string           `json:"userAgent,omitempty"`
  6925  	UserId      string           `json:"userId,omitempty"`
  6926  	Workflow    WebAuthnWorkflow `json:"workflow,omitempty"`
  6927  }
  6928  
  6929  /**
  6930   * @author Daniel DeGroff
  6931   */
  6932  type MaximumPasswordAge struct {
  6933  	Enableable
  6934  	Days int `json:"days,omitempty"`
  6935  }
  6936  
  6937  /**
  6938   * @author Brett Guy
  6939   */
  6940  type IPAccessControlEntry struct {
  6941  	Action         IPAccessControlEntryAction `json:"action,omitempty"`
  6942  	EndIPAddress   string                     `json:"endIPAddress,omitempty"`
  6943  	StartIPAddress string                     `json:"startIPAddress,omitempty"`
  6944  }
  6945  
  6946  /**
  6947   * Models the Group Member Update Event.
  6948   *
  6949   * @author Daniel DeGroff
  6950   */
  6951  type GroupMemberUpdateEvent struct {
  6952  	BaseEvent
  6953  	Group   Group         `json:"group,omitempty"`
  6954  	Members []GroupMember `json:"members,omitempty"`
  6955  }
  6956  
  6957  /**
  6958   * Models the User Deactivate Event.
  6959   *
  6960   * @author Brian Pontarelli
  6961   */
  6962  type UserDeactivateEvent struct {
  6963  	BaseEvent
  6964  	User User `json:"user,omitempty"`
  6965  }
  6966  
  6967  /**
  6968   * Group Member Response
  6969   *
  6970   * @author Daniel DeGroff
  6971   */
  6972  type MemberResponse struct {
  6973  	BaseHTTPResponse
  6974  	Members map[string][]GroupMember `json:"members,omitempty"`
  6975  }
  6976  
  6977  func (b *MemberResponse) SetStatus(status int) {
  6978  	b.StatusCode = status
  6979  }
  6980  
  6981  /**
  6982   * API response for completing WebAuthn assertion
  6983   *
  6984   * @author Spencer Witt
  6985   */
  6986  type WebAuthnAssertResponse struct {
  6987  	BaseHTTPResponse
  6988  	Credential WebAuthnCredential `json:"credential,omitempty"`
  6989  }
  6990  
  6991  func (b *WebAuthnAssertResponse) SetStatus(status int) {
  6992  	b.StatusCode = status
  6993  }
  6994  
  6995  /**
  6996   * @author Daniel DeGroff
  6997   */
  6998  type SecureGeneratorType string
  6999  
  7000  func (e SecureGeneratorType) String() string {
  7001  	return string(e)
  7002  }
  7003  
  7004  const (
  7005  	SecureGeneratorType_RandomDigits       SecureGeneratorType = "randomDigits"
  7006  	SecureGeneratorType_RandomBytes        SecureGeneratorType = "randomBytes"
  7007  	SecureGeneratorType_RandomAlpha        SecureGeneratorType = "randomAlpha"
  7008  	SecureGeneratorType_RandomAlphaNumeric SecureGeneratorType = "randomAlphaNumeric"
  7009  )
  7010  
  7011  /**
  7012   * XML canonicalization method enumeration. This is used for the IdP and SP side of FusionAuth SAML.
  7013   *
  7014   * @author Brian Pontarelli
  7015   */
  7016  type CanonicalizationMethod string
  7017  
  7018  func (e CanonicalizationMethod) String() string {
  7019  	return string(e)
  7020  }
  7021  
  7022  const (
  7023  	CanonicalizationMethod_Exclusive             CanonicalizationMethod = "exclusive"
  7024  	CanonicalizationMethod_ExclusiveWithComments CanonicalizationMethod = "exclusive_with_comments"
  7025  	CanonicalizationMethod_Inclusive             CanonicalizationMethod = "inclusive"
  7026  	CanonicalizationMethod_InclusiveWithComments CanonicalizationMethod = "inclusive_with_comments"
  7027  )
  7028  
  7029  /**
  7030   * Search criteria for themes
  7031   *
  7032   * @author Mark Manes
  7033   */
  7034  type ThemeSearchCriteria struct {
  7035  	BaseSearchCriteria
  7036  	Name string `json:"name,omitempty"`
  7037  }
  7038  
  7039  /**
  7040   * @author Daniel DeGroff
  7041   */
  7042  type RateLimitedRequestType string
  7043  
  7044  func (e RateLimitedRequestType) String() string {
  7045  	return string(e)
  7046  }
  7047  
  7048  const (
  7049  	RateLimitedRequestType_FailedLogin                  RateLimitedRequestType = "FailedLogin"
  7050  	RateLimitedRequestType_ForgotPassword               RateLimitedRequestType = "ForgotPassword"
  7051  	RateLimitedRequestType_SendEmailVerification        RateLimitedRequestType = "SendEmailVerification"
  7052  	RateLimitedRequestType_SendPasswordless             RateLimitedRequestType = "SendPasswordless"
  7053  	RateLimitedRequestType_SendRegistrationVerification RateLimitedRequestType = "SendRegistrationVerification"
  7054  	RateLimitedRequestType_SendTwoFactor                RateLimitedRequestType = "SendTwoFactor"
  7055  )
  7056  
  7057  /**
  7058   * @author Daniel DeGroff
  7059   */
  7060  type LoginHintConfiguration struct {
  7061  	Enableable
  7062  	ParameterName string `json:"parameterName,omitempty"`
  7063  }
  7064  
  7065  /**
  7066   * Controls the policy for whether OAuth workflows will more strictly adhere to the OAuth and OIDC specification
  7067   * or run in backwards compatibility mode.
  7068   *
  7069   * @author David Charles
  7070   */
  7071  type OAuthScopeHandlingPolicy string
  7072  
  7073  func (e OAuthScopeHandlingPolicy) String() string {
  7074  	return string(e)
  7075  }
  7076  
  7077  const (
  7078  	OAuthScopeHandlingPolicy_Compatibility OAuthScopeHandlingPolicy = "Compatibility"
  7079  	OAuthScopeHandlingPolicy_Strict        OAuthScopeHandlingPolicy = "Strict"
  7080  )
  7081  
  7082  /**
  7083   * API request for managing families and members.
  7084   *
  7085   * @author Brian Pontarelli
  7086   */
  7087  type FamilyRequest struct {
  7088  	FamilyMember FamilyMember `json:"familyMember,omitempty"`
  7089  }
  7090  
  7091  /**
  7092   * @author Matthew Altman
  7093   */
  7094  type LogoutBehavior string
  7095  
  7096  func (e LogoutBehavior) String() string {
  7097  	return string(e)
  7098  }
  7099  
  7100  const (
  7101  	LogoutBehavior_RedirectOnly    LogoutBehavior = "RedirectOnly"
  7102  	LogoutBehavior_AllApplications LogoutBehavior = "AllApplications"
  7103  )
  7104  
  7105  /**
  7106   * The response from the total report. This report stores the total numbers for each application.
  7107   *
  7108   * @author Brian Pontarelli
  7109   */
  7110  type TotalsReportResponse struct {
  7111  	BaseHTTPResponse
  7112  	ApplicationTotals        map[string]Totals `json:"applicationTotals,omitempty"`
  7113  	GlobalRegistrations      int64             `json:"globalRegistrations,omitempty"`
  7114  	TotalGlobalRegistrations int64             `json:"totalGlobalRegistrations,omitempty"`
  7115  }
  7116  
  7117  func (b *TotalsReportResponse) SetStatus(status int) {
  7118  	b.StatusCode = status
  7119  }
  7120  
  7121  /**
  7122   * A historical state of a user log event. Since events can be modified, this stores the historical state.
  7123   *
  7124   * @author Brian Pontarelli
  7125   */
  7126  type LogHistory struct {
  7127  	HistoryItems []HistoryItem `json:"historyItems,omitempty"`
  7128  }
  7129  
  7130  /**
  7131   * Models the User Create Registration Event.
  7132   *
  7133   * @author Daniel DeGroff
  7134   */
  7135  type UserRegistrationCreateEvent struct {
  7136  	BaseEvent
  7137  	ApplicationId string           `json:"applicationId,omitempty"`
  7138  	Registration  UserRegistration `json:"registration,omitempty"`
  7139  	User          User             `json:"user,omitempty"`
  7140  }
  7141  
  7142  /**
  7143   * Search request for Applications
  7144   *
  7145   * @author Spencer Witt
  7146   */
  7147  type ApplicationSearchRequest struct {
  7148  	ExpandableRequest
  7149  	Search ApplicationSearchCriteria `json:"search,omitempty"`
  7150  }
  7151  
  7152  /**
  7153   * API request for User consent types.
  7154   *
  7155   * @author Daniel DeGroff
  7156   */
  7157  type ConsentRequest struct {
  7158  	Consent Consent `json:"consent,omitempty"`
  7159  }
  7160  
  7161  /**
  7162   * @author Daniel DeGroff
  7163   */
  7164  type FacebookApplicationConfiguration struct {
  7165  	BaseIdentityProviderApplicationConfiguration
  7166  	AppId        string                      `json:"appId,omitempty"`
  7167  	ButtonText   string                      `json:"buttonText,omitempty"`
  7168  	ClientSecret string                      `json:"client_secret,omitempty"`
  7169  	Fields       string                      `json:"fields,omitempty"`
  7170  	LoginMethod  IdentityProviderLoginMethod `json:"loginMethod,omitempty"`
  7171  	Permissions  string                      `json:"permissions,omitempty"`
  7172  }
  7173  
  7174  /**
  7175   * @author Johnathon Wood
  7176   */
  7177  type Oauth2AuthorizedURLValidationPolicy string
  7178  
  7179  func (e Oauth2AuthorizedURLValidationPolicy) String() string {
  7180  	return string(e)
  7181  }
  7182  
  7183  const (
  7184  	Oauth2AuthorizedURLValidationPolicy_AllowWildcards Oauth2AuthorizedURLValidationPolicy = "AllowWildcards"
  7185  	Oauth2AuthorizedURLValidationPolicy_ExactMatch     Oauth2AuthorizedURLValidationPolicy = "ExactMatch"
  7186  )
  7187  
  7188  /**
  7189   * Models content user action options.
  7190   *
  7191   * @author Brian Pontarelli
  7192   */
  7193  type UserActionOption struct {
  7194  	LocalizedNames map[string]string `json:"localizedNames,omitempty"`
  7195  	Name           string            `json:"name,omitempty"`
  7196  }
  7197  
  7198  /**
  7199   * Identifies the WebAuthn workflow. This will affect the parameters used for credential creation
  7200   * and request based on the Tenant configuration.
  7201   *
  7202   * @author Spencer Witt
  7203   */
  7204  type WebAuthnWorkflow string
  7205  
  7206  func (e WebAuthnWorkflow) String() string {
  7207  	return string(e)
  7208  }
  7209  
  7210  const (
  7211  	WebAuthnWorkflow_Bootstrap        WebAuthnWorkflow = "bootstrap"
  7212  	WebAuthnWorkflow_General          WebAuthnWorkflow = "general"
  7213  	WebAuthnWorkflow_Reauthentication WebAuthnWorkflow = "reauthentication"
  7214  )
  7215  
  7216  /**
  7217   * An action that can be executed on a user (discipline or reward potentially).
  7218   *
  7219   * @author Brian Pontarelli
  7220   */
  7221  type UserAction struct {
  7222  	Active                   bool               `json:"active"`
  7223  	CancelEmailTemplateId    string             `json:"cancelEmailTemplateId,omitempty"`
  7224  	EndEmailTemplateId       string             `json:"endEmailTemplateId,omitempty"`
  7225  	Id                       string             `json:"id,omitempty"`
  7226  	IncludeEmailInEventJSON  bool               `json:"includeEmailInEventJSON"`
  7227  	InsertInstant            int64              `json:"insertInstant,omitempty"`
  7228  	LastUpdateInstant        int64              `json:"lastUpdateInstant,omitempty"`
  7229  	LocalizedNames           map[string]string  `json:"localizedNames,omitempty"`
  7230  	ModifyEmailTemplateId    string             `json:"modifyEmailTemplateId,omitempty"`
  7231  	Name                     string             `json:"name,omitempty"`
  7232  	Options                  []UserActionOption `json:"options,omitempty"`
  7233  	PreventLogin             bool               `json:"preventLogin"`
  7234  	SendEndEvent             bool               `json:"sendEndEvent"`
  7235  	StartEmailTemplateId     string             `json:"startEmailTemplateId,omitempty"`
  7236  	Temporal                 bool               `json:"temporal"`
  7237  	TransactionType          TransactionType    `json:"transactionType,omitempty"`
  7238  	UserEmailingEnabled      bool               `json:"userEmailingEnabled"`
  7239  	UserNotificationsEnabled bool               `json:"userNotificationsEnabled"`
  7240  }
  7241  
  7242  /**
  7243   * Forgot password response object.
  7244   *
  7245   * @author Daniel DeGroff
  7246   */
  7247  type ForgotPasswordResponse struct {
  7248  	BaseHTTPResponse
  7249  	ChangePasswordId string `json:"changePasswordId,omitempty"`
  7250  }
  7251  
  7252  func (b *ForgotPasswordResponse) SetStatus(status int) {
  7253  	b.StatusCode = status
  7254  }
  7255  
  7256  /**
  7257   * Models the JWT Refresh Event. This event will be fired when a JWT is "refreshed" (generated) using a Refresh Token.
  7258   *
  7259   * @author Daniel DeGroff
  7260   */
  7261  type JWTRefreshEvent struct {
  7262  	BaseEvent
  7263  	ApplicationId string `json:"applicationId,omitempty"`
  7264  	Original      string `json:"original,omitempty"`
  7265  	RefreshToken  string `json:"refreshToken,omitempty"`
  7266  	Token         string `json:"token,omitempty"`
  7267  	UserId        string `json:"userId,omitempty"`
  7268  }
  7269  
  7270  /**
  7271   * Search results.
  7272   *
  7273   * @author Brian Pontarelli
  7274   */
  7275  type SearchResults struct {
  7276  	NextResults        string        `json:"nextResults,omitempty"`
  7277  	Results            []interface{} `json:"results,omitempty"`
  7278  	Total              int64         `json:"total,omitempty"`
  7279  	TotalEqualToActual bool          `json:"totalEqualToActual"`
  7280  }
  7281  
  7282  /**
  7283   * Search request for entities
  7284   *
  7285   * @author Brett Guy
  7286   */
  7287  type EntitySearchResponse struct {
  7288  	BaseHTTPResponse
  7289  	Entities    []Entity `json:"entities,omitempty"`
  7290  	NextResults string   `json:"nextResults,omitempty"`
  7291  	Total       int64    `json:"total,omitempty"`
  7292  }
  7293  
  7294  func (b *EntitySearchResponse) SetStatus(status int) {
  7295  	b.StatusCode = status
  7296  }
  7297  
  7298  /**
  7299   * @author Derek Klatt
  7300   */
  7301  type PasswordValidationRules struct {
  7302  	BreachDetection           PasswordBreachDetection   `json:"breachDetection,omitempty"`
  7303  	MaxLength                 int                       `json:"maxLength,omitempty"`
  7304  	MinLength                 int                       `json:"minLength,omitempty"`
  7305  	RememberPreviousPasswords RememberPreviousPasswords `json:"rememberPreviousPasswords,omitempty"`
  7306  	RequireMixedCase          bool                      `json:"requireMixedCase"`
  7307  	RequireNonAlpha           bool                      `json:"requireNonAlpha"`
  7308  	RequireNumber             bool                      `json:"requireNumber"`
  7309  	ValidateOnLogin           bool                      `json:"validateOnLogin"`
  7310  }
  7311  
  7312  /**
  7313   * @author Daniel DeGroff
  7314   */
  7315  type SecretResponse struct {
  7316  	BaseHTTPResponse
  7317  	Secret              string `json:"secret,omitempty"`
  7318  	SecretBase32Encoded string `json:"secretBase32Encoded,omitempty"`
  7319  }
  7320  
  7321  func (b *SecretResponse) SetStatus(status int) {
  7322  	b.StatusCode = status
  7323  }
  7324  
  7325  /**
  7326   * Twitter social login provider.
  7327   *
  7328   * @author Daniel DeGroff
  7329   */
  7330  type TwitterIdentityProvider struct {
  7331  	BaseIdentityProvider
  7332  	ButtonText     string `json:"buttonText,omitempty"`
  7333  	ConsumerKey    string `json:"consumerKey,omitempty"`
  7334  	ConsumerSecret string `json:"consumerSecret,omitempty"`
  7335  }
  7336  
  7337  /**
  7338   * @author Daniel DeGroff
  7339   */
  7340  type HYPRIdentityProvider struct {
  7341  	BaseIdentityProvider
  7342  	RelyingPartyApplicationId string `json:"relyingPartyApplicationId,omitempty"`
  7343  	RelyingPartyURL           string `json:"relyingPartyURL,omitempty"`
  7344  }
  7345  
  7346  /**
  7347   * Models the User Password Reset Success Event.
  7348   *
  7349   * @author Daniel DeGroff
  7350   */
  7351  type UserPasswordResetSuccessEvent struct {
  7352  	BaseEvent
  7353  	User User `json:"user,omitempty"`
  7354  }
  7355  
  7356  /**
  7357   * Something that can be required and thus also optional. This currently extends Enableable because anything that is
  7358   * required/optional is almost always enableable as well.
  7359   *
  7360   * @author Brian Pontarelli
  7361   */
  7362  type Requirable struct {
  7363  	Enableable
  7364  	Required bool `json:"required"`
  7365  }
  7366  
  7367  /**
  7368   * JWT Configuration for entities.
  7369   */
  7370  type EntityJWTConfiguration struct {
  7371  	Enableable
  7372  	AccessTokenKeyId    string `json:"accessTokenKeyId,omitempty"`
  7373  	TimeToLiveInSeconds int    `json:"timeToLiveInSeconds,omitempty"`
  7374  }
  7375  
  7376  /**
  7377   * @author Daniel DeGroff
  7378   */
  7379  type ReloadRequest struct {
  7380  	Names []string `json:"names,omitempty"`
  7381  }
  7382  
  7383  /**
  7384   * Search request for user comments
  7385   *
  7386   * @author Spencer Witt
  7387   */
  7388  type UserCommentSearchRequest struct {
  7389  	Search UserCommentSearchCriteria `json:"search,omitempty"`
  7390  }
  7391  
  7392  /**
  7393   * Request to complete the WebAuthn registration ceremony
  7394   *
  7395   * @author Spencer Witt
  7396   */
  7397  type WebAuthnLoginRequest struct {
  7398  	BaseLoginRequest
  7399  	Credential       WebAuthnPublicKeyAuthenticationRequest `json:"credential,omitempty"`
  7400  	Origin           string                                 `json:"origin,omitempty"`
  7401  	RpId             string                                 `json:"rpId,omitempty"`
  7402  	TwoFactorTrustId string                                 `json:"twoFactorTrustId,omitempty"`
  7403  }
  7404  
  7405  /**
  7406   * domain POJO to represent AuthenticationKey
  7407   *
  7408   * @author sanjay
  7409   */
  7410  type APIKey struct {
  7411  	Id                    string            `json:"id,omitempty"`
  7412  	InsertInstant         int64             `json:"insertInstant,omitempty"`
  7413  	IpAccessControlListId string            `json:"ipAccessControlListId,omitempty"`
  7414  	Key                   string            `json:"key,omitempty"`
  7415  	KeyManager            bool              `json:"keyManager"`
  7416  	LastUpdateInstant     int64             `json:"lastUpdateInstant,omitempty"`
  7417  	MetaData              APIKeyMetaData    `json:"metaData,omitempty"`
  7418  	Permissions           APIKeyPermissions `json:"permissions,omitempty"`
  7419  	TenantId              string            `json:"tenantId,omitempty"`
  7420  }
  7421  
  7422  /**
  7423   * Search criteria for webhooks.
  7424   *
  7425   * @author Spencer Witt
  7426   */
  7427  type WebhookSearchCriteria struct {
  7428  	BaseSearchCriteria
  7429  	Description string `json:"description,omitempty"`
  7430  	TenantId    string `json:"tenantId,omitempty"`
  7431  	Url         string `json:"url,omitempty"`
  7432  }
  7433  
  7434  /**
  7435   * Policy for handling unknown OAuth scopes in the request
  7436   *
  7437   * @author Spencer Witt
  7438   */
  7439  type UnknownScopePolicy string
  7440  
  7441  func (e UnknownScopePolicy) String() string {
  7442  	return string(e)
  7443  }
  7444  
  7445  const (
  7446  	UnknownScopePolicy_Allow  UnknownScopePolicy = "Allow"
  7447  	UnknownScopePolicy_Remove UnknownScopePolicy = "Remove"
  7448  	UnknownScopePolicy_Reject UnknownScopePolicy = "Reject"
  7449  )
  7450  
  7451  /**
  7452   * Models the User Password Reset Start Event.
  7453   *
  7454   * @author Daniel DeGroff
  7455   */
  7456  type UserPasswordResetStartEvent struct {
  7457  	BaseEvent
  7458  	User User `json:"user,omitempty"`
  7459  }
  7460  
  7461  /**
  7462   * Models the Group Delete Event.
  7463   *
  7464   * @author Daniel DeGroff
  7465   */
  7466  type GroupDeleteEvent struct {
  7467  	BaseEvent
  7468  	Group Group `json:"group,omitempty"`
  7469  }
  7470  
  7471  type MultiFactorEmailTemplate struct {
  7472  	TemplateId string `json:"templateId,omitempty"`
  7473  }
  7474  
  7475  type OAuthErrorReason string
  7476  
  7477  func (e OAuthErrorReason) String() string {
  7478  	return string(e)
  7479  }
  7480  
  7481  const (
  7482  	OAuthErrorReason_AuthCodeNotFound                    OAuthErrorReason = "auth_code_not_found"
  7483  	OAuthErrorReason_AccessTokenMalformed                OAuthErrorReason = "access_token_malformed"
  7484  	OAuthErrorReason_AccessTokenExpired                  OAuthErrorReason = "access_token_expired"
  7485  	OAuthErrorReason_AccessTokenUnavailableForProcessing OAuthErrorReason = "access_token_unavailable_for_processing"
  7486  	OAuthErrorReason_AccessTokenFailedProcessing         OAuthErrorReason = "access_token_failed_processing"
  7487  	OAuthErrorReason_AccessTokenInvalid                  OAuthErrorReason = "access_token_invalid"
  7488  	OAuthErrorReason_AccessTokenRequired                 OAuthErrorReason = "access_token_required"
  7489  	OAuthErrorReason_RefreshTokenNotFound                OAuthErrorReason = "refresh_token_not_found"
  7490  	OAuthErrorReason_RefreshTokenTypeNotSupported        OAuthErrorReason = "refresh_token_type_not_supported"
  7491  	OAuthErrorReason_InvalidClientId                     OAuthErrorReason = "invalid_client_id"
  7492  	OAuthErrorReason_InvalidUserCredentials              OAuthErrorReason = "invalid_user_credentials"
  7493  	OAuthErrorReason_InvalidGrantType                    OAuthErrorReason = "invalid_grant_type"
  7494  	OAuthErrorReason_InvalidOrigin                       OAuthErrorReason = "invalid_origin"
  7495  	OAuthErrorReason_InvalidOriginOpaque                 OAuthErrorReason = "invalid_origin_opaque"
  7496  	OAuthErrorReason_InvalidPkceCodeVerifier             OAuthErrorReason = "invalid_pkce_code_verifier"
  7497  	OAuthErrorReason_InvalidPkceCodeChallenge            OAuthErrorReason = "invalid_pkce_code_challenge"
  7498  	OAuthErrorReason_InvalidPkceCodeChallengeMethod      OAuthErrorReason = "invalid_pkce_code_challenge_method"
  7499  	OAuthErrorReason_InvalidRedirectUri                  OAuthErrorReason = "invalid_redirect_uri"
  7500  	OAuthErrorReason_InvalidResponseMode                 OAuthErrorReason = "invalid_response_mode"
  7501  	OAuthErrorReason_InvalidResponseType                 OAuthErrorReason = "invalid_response_type"
  7502  	OAuthErrorReason_InvalidIdTokenHint                  OAuthErrorReason = "invalid_id_token_hint"
  7503  	OAuthErrorReason_InvalidPostLogoutRedirectUri        OAuthErrorReason = "invalid_post_logout_redirect_uri"
  7504  	OAuthErrorReason_InvalidDeviceCode                   OAuthErrorReason = "invalid_device_code"
  7505  	OAuthErrorReason_InvalidUserCode                     OAuthErrorReason = "invalid_user_code"
  7506  	OAuthErrorReason_InvalidAdditionalClientId           OAuthErrorReason = "invalid_additional_client_id"
  7507  	OAuthErrorReason_InvalidTargetEntityScope            OAuthErrorReason = "invalid_target_entity_scope"
  7508  	OAuthErrorReason_InvalidEntityPermissionScope        OAuthErrorReason = "invalid_entity_permission_scope"
  7509  	OAuthErrorReason_InvalidUserId                       OAuthErrorReason = "invalid_user_id"
  7510  	OAuthErrorReason_GrantTypeDisabled                   OAuthErrorReason = "grant_type_disabled"
  7511  	OAuthErrorReason_MissingClientId                     OAuthErrorReason = "missing_client_id"
  7512  	OAuthErrorReason_MissingClientSecret                 OAuthErrorReason = "missing_client_secret"
  7513  	OAuthErrorReason_MissingCode                         OAuthErrorReason = "missing_code"
  7514  	OAuthErrorReason_MissingCodeChallenge                OAuthErrorReason = "missing_code_challenge"
  7515  	OAuthErrorReason_MissingCodeVerifier                 OAuthErrorReason = "missing_code_verifier"
  7516  	OAuthErrorReason_MissingDeviceCode                   OAuthErrorReason = "missing_device_code"
  7517  	OAuthErrorReason_MissingGrantType                    OAuthErrorReason = "missing_grant_type"
  7518  	OAuthErrorReason_MissingRedirectUri                  OAuthErrorReason = "missing_redirect_uri"
  7519  	OAuthErrorReason_MissingRefreshToken                 OAuthErrorReason = "missing_refresh_token"
  7520  	OAuthErrorReason_MissingResponseType                 OAuthErrorReason = "missing_response_type"
  7521  	OAuthErrorReason_MissingToken                        OAuthErrorReason = "missing_token"
  7522  	OAuthErrorReason_MissingUserCode                     OAuthErrorReason = "missing_user_code"
  7523  	OAuthErrorReason_MissingUserId                       OAuthErrorReason = "missing_user_id"
  7524  	OAuthErrorReason_MissingVerificationUri              OAuthErrorReason = "missing_verification_uri"
  7525  	OAuthErrorReason_LoginPrevented                      OAuthErrorReason = "login_prevented"
  7526  	OAuthErrorReason_NotLicensed                         OAuthErrorReason = "not_licensed"
  7527  	OAuthErrorReason_UserCodeExpired                     OAuthErrorReason = "user_code_expired"
  7528  	OAuthErrorReason_UserExpired                         OAuthErrorReason = "user_expired"
  7529  	OAuthErrorReason_UserLocked                          OAuthErrorReason = "user_locked"
  7530  	OAuthErrorReason_UserNotFound                        OAuthErrorReason = "user_not_found"
  7531  	OAuthErrorReason_ClientAuthenticationMissing         OAuthErrorReason = "client_authentication_missing"
  7532  	OAuthErrorReason_InvalidClientAuthenticationScheme   OAuthErrorReason = "invalid_client_authentication_scheme"
  7533  	OAuthErrorReason_InvalidClientAuthentication         OAuthErrorReason = "invalid_client_authentication"
  7534  	OAuthErrorReason_ClientIdMismatch                    OAuthErrorReason = "client_id_mismatch"
  7535  	OAuthErrorReason_ChangePasswordAdministrative        OAuthErrorReason = "change_password_administrative"
  7536  	OAuthErrorReason_ChangePasswordBreached              OAuthErrorReason = "change_password_breached"
  7537  	OAuthErrorReason_ChangePasswordExpired               OAuthErrorReason = "change_password_expired"
  7538  	OAuthErrorReason_ChangePasswordValidation            OAuthErrorReason = "change_password_validation"
  7539  	OAuthErrorReason_Unknown                             OAuthErrorReason = "unknown"
  7540  	OAuthErrorReason_MissingRequiredScope                OAuthErrorReason = "missing_required_scope"
  7541  	OAuthErrorReason_UnknownScope                        OAuthErrorReason = "unknown_scope"
  7542  	OAuthErrorReason_ConsentCanceled                     OAuthErrorReason = "consent_canceled"
  7543  )
  7544  
  7545  /**
  7546   * @author Brett Pontarelli
  7547   */
  7548  type TenantSSOConfiguration struct {
  7549  	DeviceTrustTimeToLiveInSeconds int `json:"deviceTrustTimeToLiveInSeconds,omitempty"`
  7550  }
  7551  
  7552  /**
  7553   * Supply information on credential type and algorithm to the <i>authenticator</i>.
  7554   *
  7555   * @author Spencer Witt
  7556   */
  7557  type PublicKeyCredentialParameters struct {
  7558  	Alg  CoseAlgorithmIdentifier `json:"alg,omitempty"`
  7559  	Type PublicKeyCredentialType `json:"type,omitempty"`
  7560  }
  7561  
  7562  /**
  7563   * API response for consent.
  7564   *
  7565   * @author Daniel DeGroff
  7566   */
  7567  type ConsentResponse struct {
  7568  	BaseHTTPResponse
  7569  	Consent  Consent   `json:"consent,omitempty"`
  7570  	Consents []Consent `json:"consents,omitempty"`
  7571  }
  7572  
  7573  func (b *ConsentResponse) SetStatus(status int) {
  7574  	b.StatusCode = status
  7575  }
  7576  
  7577  /**
  7578   * Models the Group Member Remove Event.
  7579   *
  7580   * @author Daniel DeGroff
  7581   */
  7582  type GroupMemberRemoveEvent struct {
  7583  	BaseEvent
  7584  	Group   Group         `json:"group,omitempty"`
  7585  	Members []GroupMember `json:"members,omitempty"`
  7586  }
  7587  
  7588  /**
  7589   * @author Daniel DeGroff
  7590   */
  7591  type IdentityProviderPendingLinkResponse struct {
  7592  	BaseHTTPResponse
  7593  	IdentityProviderTenantConfiguration IdentityProviderTenantConfiguration `json:"identityProviderTenantConfiguration,omitempty"`
  7594  	LinkCount                           int                                 `json:"linkCount,omitempty"`
  7595  	PendingIdPLink                      PendingIdPLink                      `json:"pendingIdPLink,omitempty"`
  7596  }
  7597  
  7598  func (b *IdentityProviderPendingLinkResponse) SetStatus(status int) {
  7599  	b.StatusCode = status
  7600  }
  7601  
  7602  /**
  7603   * Change password response object.
  7604   *
  7605   * @author Daniel DeGroff
  7606   */
  7607  type ChangePasswordResponse struct {
  7608  	BaseHTTPResponse
  7609  	OneTimePassword string                 `json:"oneTimePassword,omitempty"`
  7610  	State           map[string]interface{} `json:"state,omitempty"`
  7611  }
  7612  
  7613  func (b *ChangePasswordResponse) SetStatus(status int) {
  7614  	b.StatusCode = status
  7615  }
  7616  
  7617  /**
  7618   * The user action response object.
  7619   *
  7620   * @author Brian Pontarelli
  7621   */
  7622  type ActionResponse struct {
  7623  	BaseHTTPResponse
  7624  	Action  UserActionLog   `json:"action,omitempty"`
  7625  	Actions []UserActionLog `json:"actions,omitempty"`
  7626  }
  7627  
  7628  func (b *ActionResponse) SetStatus(status int) {
  7629  	b.StatusCode = status
  7630  }
  7631  
  7632  type Totals struct {
  7633  	Logins             int64 `json:"logins,omitempty"`
  7634  	Registrations      int64 `json:"registrations,omitempty"`
  7635  	TotalRegistrations int64 `json:"totalRegistrations,omitempty"`
  7636  }
  7637  
  7638  /**
  7639   * Config for regular SAML IDP configurations that support IdP initiated requests
  7640   *
  7641   * @author Lyle Schemmerling
  7642   */
  7643  type SAMLv2IdpInitiatedConfiguration struct {
  7644  	Enableable
  7645  	Issuer string `json:"issuer,omitempty"`
  7646  }
  7647  
  7648  /**
  7649   * Request for the system configuration API.
  7650   *
  7651   * @author Brian Pontarelli
  7652   */
  7653  type SystemConfigurationRequest struct {
  7654  	SystemConfiguration SystemConfiguration `json:"systemConfiguration,omitempty"`
  7655  }
  7656  
  7657  /**
  7658   * User Action API request object.
  7659   *
  7660   * @author Brian Pontarelli
  7661   */
  7662  type UserActionRequest struct {
  7663  	UserAction UserAction `json:"userAction,omitempty"`
  7664  }
  7665  
  7666  type ClientAuthenticationMethod string
  7667  
  7668  func (e ClientAuthenticationMethod) String() string {
  7669  	return string(e)
  7670  }
  7671  
  7672  const (
  7673  	ClientAuthenticationMethod_None              ClientAuthenticationMethod = "none"
  7674  	ClientAuthenticationMethod_ClientSecretBasic ClientAuthenticationMethod = "client_secret_basic"
  7675  	ClientAuthenticationMethod_ClientSecretPost  ClientAuthenticationMethod = "client_secret_post"
  7676  )
  7677  
  7678  /**
  7679   * @author Brett Guy
  7680   */
  7681  type IPAccessControlListResponse struct {
  7682  	BaseHTTPResponse
  7683  	IpAccessControlList  IPAccessControlList   `json:"ipAccessControlList,omitempty"`
  7684  	IpAccessControlLists []IPAccessControlList `json:"ipAccessControlLists,omitempty"`
  7685  }
  7686  
  7687  func (b *IPAccessControlListResponse) SetStatus(status int) {
  7688  	b.StatusCode = status
  7689  }
  7690  
  7691  /**
  7692   * Request for managing FusionAuth Reactor and licenses.
  7693   *
  7694   * @author Brian Pontarelli
  7695   */
  7696  type ReactorRequest struct {
  7697  	License   string `json:"license,omitempty"`
  7698  	LicenseId string `json:"licenseId,omitempty"`
  7699  }
  7700  
  7701  /**
  7702   * Controls the policy for requesting user permission to grant access to requested scopes during an OAuth workflow
  7703   * for a third-party application.
  7704   *
  7705   * @author Spencer Witt
  7706   */
  7707  type OAuthScopeConsentMode string
  7708  
  7709  func (e OAuthScopeConsentMode) String() string {
  7710  	return string(e)
  7711  }
  7712  
  7713  const (
  7714  	OAuthScopeConsentMode_AlwaysPrompt     OAuthScopeConsentMode = "AlwaysPrompt"
  7715  	OAuthScopeConsentMode_RememberDecision OAuthScopeConsentMode = "RememberDecision"
  7716  	OAuthScopeConsentMode_NeverPrompt      OAuthScopeConsentMode = "NeverPrompt"
  7717  )
  7718  
  7719  /**
  7720   * @author Michael Sleevi
  7721   */
  7722  type MessageTemplateResponse struct {
  7723  	BaseHTTPResponse
  7724  	MessageTemplate  MessageTemplate   `json:"messageTemplate,omitempty"`
  7725  	MessageTemplates []MessageTemplate `json:"messageTemplates,omitempty"`
  7726  }
  7727  
  7728  func (b *MessageTemplateResponse) SetStatus(status int) {
  7729  	b.StatusCode = status
  7730  }
  7731  
  7732  /**
  7733   * @author Brett Pontarelli
  7734   */
  7735  type IdentityProviderLoginMethod string
  7736  
  7737  func (e IdentityProviderLoginMethod) String() string {
  7738  	return string(e)
  7739  }
  7740  
  7741  const (
  7742  	IdentityProviderLoginMethod_UsePopup            IdentityProviderLoginMethod = "UsePopup"
  7743  	IdentityProviderLoginMethod_UseRedirect         IdentityProviderLoginMethod = "UseRedirect"
  7744  	IdentityProviderLoginMethod_UseVendorJavaScript IdentityProviderLoginMethod = "UseVendorJavaScript"
  7745  )
  7746  
  7747  /**
  7748   * @author Brett Guy
  7749   */
  7750  type MessengerRequest struct {
  7751  	Messenger BaseMessengerConfiguration `json:"messenger,omitempty"`
  7752  }
  7753  
  7754  /**
  7755   * Request for the Tenant API to delete a tenant rather than using the URL parameters.
  7756   *
  7757   * @author Brian Pontarelli
  7758   */
  7759  type TenantDeleteRequest struct {
  7760  	BaseEventRequest
  7761  	Async bool `json:"async"`
  7762  }
  7763  
  7764  /**
  7765   * An Event "event" to indicate an event log was created.
  7766   *
  7767   * @author Daniel DeGroff
  7768   */
  7769  type EventLogCreateEvent struct {
  7770  	BaseEvent
  7771  	EventLog EventLog `json:"eventLog,omitempty"`
  7772  }
  7773  
  7774  type UniqueUsernameConfiguration struct {
  7775  	Enableable
  7776  	NumberOfDigits int                    `json:"numberOfDigits,omitempty"`
  7777  	Separator      string                 `json:"separator,omitempty"`
  7778  	Strategy       UniqueUsernameStrategy `json:"strategy,omitempty"`
  7779  }
  7780  
  7781  /**
  7782   * @author Daniel DeGroff
  7783   */
  7784  type SAMLv2IdPInitiatedApplicationConfiguration struct {
  7785  	BaseIdentityProviderApplicationConfiguration
  7786  }
  7787  
  7788  /**
  7789   * Event log response.
  7790   *
  7791   * @author Daniel DeGroff
  7792   */
  7793  type EventLogResponse struct {
  7794  	BaseHTTPResponse
  7795  	EventLog EventLog `json:"eventLog,omitempty"`
  7796  }
  7797  
  7798  func (b *EventLogResponse) SetStatus(status int) {
  7799  	b.StatusCode = status
  7800  }
  7801  
  7802  /**
  7803   * @author Daniel DeGroff
  7804   */
  7805  type TenantRegistrationConfiguration struct {
  7806  	BlockedDomains []string `json:"blockedDomains,omitempty"`
  7807  }