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 }