models

package
v1.54.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 19, 2024 License: MIT Imports: 15 Imported by: 3

Documentation

Index

Constants

View Source
const (
	BodyReadError                = "RequestBodyReadError"
	JSONMarshalError             = "JSONMarshalError"
	JSONUnmarshalError           = "JSONUnmarshalError"
	WriteResponseError           = "WriteResponseError"
	InvalidUserIdError           = "InvalidUserId"
	InvalidGroupIDError          = "InvalidGroupID"
	InvalidForenameError         = "InvalidForename"
	InvalidSurnameError          = "InvalidSurname"
	InvalidStatusNotesError      = "InvalidStatusNotes"
	InvalidEmailError            = "InvalidEmail"
	InvalidTokenError            = "InvalidToken"
	InternalError                = "InternalServerError"
	NotFoundError                = "NotFound"
	UserNotFoundError            = "UserNotFound"
	GroupExistsError             = "GroupExists"
	GroupNotFoundError           = "GroupNotFound"
	DeliveryFailureError         = "DeliveryFailure"
	InvalidCodeError             = "InvalidCode"
	ExpiredCodeError             = "ExpiredCode"
	InvalidFieldError            = "InvalidField"
	InvalidPasswordError         = "InvalidPassword"
	LimitExceededError           = "LimitExceeded"
	NotAuthorisedError           = "NotAuthorised"
	PasswordResetRequiredError   = "PasswordResetRequired"
	TooManyFailedAttemptsError   = "TooManyFailedAttempts"
	TooManyRequestsError         = "TooManyRequests"
	UserNotConfirmedError        = "UserNotConfirmed"
	UsernameExistsError          = "UsernameExists"
	MissingConfigError           = "MissingConfig"
	UnknownRequestTypeError      = "UnknownRequestType"
	NotImplementedError          = "NotImplemented"
	InvalidChallengeSessionError = "InvalidChallengeSession"
	InvalidUserPoolError         = "InvalidUserPool"
	BodyCloseError               = "BodyCloseError"
	InvalidGroupName             = "InvalidGroupName"
	InvalidGroupPrecedence       = "InvalidGroupPrecedence"
	InvalidFilterQuery           = "InvalidFilterQuery"
	JWKSParseError               = "JWKSParseError"
)

API error codes

View Source
const (
	MissingAuthorizationTokenDescription   = "no Authorization token was provided"
	MissingRefreshTokenDescription         = "no Refresh token was provided"
	MissingIDTokenDescription              = "no ID token was provided"
	MalformedIDTokenDescription            = "the ID token could not be parsed"
	MalformedAuthorizationTokenDescription = "the authorization token does not meet the required format"
	ErrorMarshalFailedDescription          = "failed to marshal the error"
	ErrorUnmarshalFailedDescription        = "failed to unmarshal the request body"
	WriteResponseFailedDescription         = "failed to write http response"
	CastingAWSErrorFailedDescription       = "failed to cast error to AWS error"
	UnrecognisedCognitoResponseDescription = "unexpected response from cognito"
	BodyReadFailedDescription              = "endpoint returned an error reading the request body"
	InvalidPasswordDescription             = "the submitted password could not be validated"
	PasswordGenerationErrorDescription     = "failed to generate a valid password"
	MissingGroupIDErrorDescription         = "the group ID was missing"
	MissingUserIdErrorDescription          = "the user id was missing"
	InvalidForenameErrorDescription        = "the submitted user's forename could not be validated"
	InvalidSurnameErrorDescription         = "the submitted user's lastname could not be validated"
	InvalidEmailDescription                = "the submitted email could not be validated"
	DuplicateEmailDescription              = "account using email address found"
	SignInFailedDescription                = "Incorrect username or password."
	SignInAttemptsExceededDescription      = "Password attempts exceeded"
	MissingConfigDescription               = "required configuration setting is missing"
	UnknownPasswordChangeTypeDescription   = "unknown password change type received"
	NotImplementedDescription              = "this feature has not been implemented yet"
	InvalidChallengeSessionDescription     = "no valid auth challenge session was provided"
	InvalidTokenDescription                = "the submitted token could not be validated"
	TooLongStatusNotesDescription          = "the status notes are too long"
	InvalidUserPoolDescription             = "dummy data load being run against non local userpool"
	BodyClosedFailedDescription            = "the request body failed to close"
	MissingGroupName                       = "the group name was not found"
	MissingGroupPrecedence                 = "the group precedence was not found"
	GroupPrecedenceIncorrect               = "the group precedence needs to be a minumum of 10 and maximum of 100"
	IncorrectPatternInGroupName            = "a group name cannot start with 'role-' or 'ROLE-'"
	GroupAlreadyExistsDescription          = "a group with the name already exists"
	InvalidFilterQueryDescription          = "the submitted query could not be validated"
	InternalErrorDescription               = "Internal Server Error"
	JWKSParseErrorDescription              = "error encountered when parsing the json web key set (jwks)"
	JWKSUnsupportedKeyTypeDescription      = "unsupported key type. Must be rsa key"
	JWKSErrorDecodingDescription           = "error decoding json web key"
	JWKSExponentErrorDescription           = "unexpected exponent: unable to decode JWK"
	JWKSEmptyWebKeySetDescription          = "empty json web key set"
)

API error descriptions

View Source
const (
	AdminRoleGroup                  = "role-admin"
	AdminRoleGroupPrecedence        = 2
	AdminRoleGroupHumanReadable     = "Administrators"
	PublisherRoleGroup              = "role-publisher"
	PublisherRoleGroupPrecedence    = 3
	PublisherRoleGroupHumanReadable = "Publishing Officers"
)
View Source
const (
	NewPasswordRequiredType = "NewPasswordRequired"
	ForgottenPasswordType   = "ForgottenPassword"
	MaxStatusNotesLength    = 512
	SecondsInDay            = 86400
)

Variables

View Source
var CognitoErrorMapping = map[string]string{
	cognitoidentityprovider.ErrCodeInternalErrorException:          InternalError,
	cognitoidentityprovider.ErrCodeCodeDeliveryFailureException:    DeliveryFailureError,
	cognitoidentityprovider.ErrCodeCodeMismatchException:           InvalidCodeError,
	cognitoidentityprovider.ErrCodeConcurrentModificationException: InternalError,
	cognitoidentityprovider.ErrCodeExpiredCodeException:            ExpiredCodeError,
	cognitoidentityprovider.ErrCodeGroupExistsException:            GroupExistsError,
	cognitoidentityprovider.ErrCodeInvalidOAuthFlowException:       InternalError,
	cognitoidentityprovider.ErrCodeInvalidParameterException:       InvalidFieldError,
	cognitoidentityprovider.ErrCodeInvalidPasswordException:        InvalidPasswordError,
	cognitoidentityprovider.ErrCodeLimitExceededException:          LimitExceededError,
	cognitoidentityprovider.ErrCodeNotAuthorizedException:          NotAuthorisedError,
	cognitoidentityprovider.ErrCodePasswordResetRequiredException:  PasswordResetRequiredError,
	cognitoidentityprovider.ErrCodeResourceNotFoundException:       NotFoundError,
	cognitoidentityprovider.ErrCodeTooManyFailedAttemptsException:  TooManyFailedAttemptsError,
	cognitoidentityprovider.ErrCodeTooManyRequestsException:        TooManyRequestsError,
	cognitoidentityprovider.ErrCodeUserNotConfirmedException:       UserNotConfirmedError,
	cognitoidentityprovider.ErrCodeUserNotFoundException:           UserNotFoundError,
	cognitoidentityprovider.ErrCodeUsernameExistsException:         UsernameExistsError,
	request.ErrCodeSerialization:                                   InternalError,
	request.ErrCodeRead:                                            InternalError,
	request.ErrCodeResponseTimeout:                                 InternalError,
	request.ErrCodeInvalidPresignExpire:                            InternalError,
	request.CanceledErrorCode:                                      InternalError,
	request.ErrCodeRequestError:                                    InternalError,
}

CognitoErrorMapping mapping Cognito error codes to API error codes

Functions

func BuildSuccessfulSignOutAllUsersJsonResponse added in v1.41.0

func BuildSuccessfulSignOutAllUsersJsonResponse(ctx context.Context) ([]byte, error)

func CleanString added in v1.28.0

func CleanString(description string) string

CleanString - strip special chars out of incoming string and trim

func IsGroupExistsError added in v1.38.0

func IsGroupExistsError(err error) bool

IsGroupExistsError validates if the err occurred because group already exists

func MapCognitoErrorToLocalError added in v1.8.0

func MapCognitoErrorToLocalError(ctx context.Context, cognitoErr awserr.Error) string

Types

type AccessToken added in v1.8.0

type AccessToken struct {
	AuthHeader  string
	TokenString string
}

func (*AccessToken) GenerateSignOutRequest added in v1.8.0

func (t *AccessToken) GenerateSignOutRequest() *cognitoidentityprovider.GlobalSignOutInput

func (*AccessToken) Validate added in v1.8.0

func (t *AccessToken) Validate(ctx context.Context) *Error

type ChangePassword added in v1.10.0

type ChangePassword struct {
	ChangeType        string `json:"type"`
	Session           string `json:"session"`
	Email             string `json:"email"`
	NewPassword       string `json:"password"`
	VerificationToken string `json:"verification_token"`
}

func (ChangePassword) BuildAuthChallengeResponseRequest added in v1.10.0

func (p ChangePassword) BuildAuthChallengeResponseRequest(clientSecret string, clientId string, challengeName string) *cognitoidentityprovider.RespondToAuthChallengeInput

BuildAuthChallengeResponseRequest generates a RespondToAuthChallengeInput for Cognito

func (ChangePassword) BuildAuthChallengeSuccessfulJsonResponse added in v1.10.0

func (p ChangePassword) BuildAuthChallengeSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.RespondToAuthChallengeOutput, refreshTokenTTL int) ([]byte, error)

BuildAuthChallengeSuccessfulJsonResponse builds the ChangePassword response json for client responses to NewPasswordRequired changes

func (ChangePassword) BuildConfirmForgotPasswordRequest added in v1.14.0

func (p ChangePassword) BuildConfirmForgotPasswordRequest(clientSecret string, clientId string) *cognitoidentityprovider.ConfirmForgotPasswordInput

func (ChangePassword) ValidateForgottenPasswordRequest added in v1.22.0

func (p ChangePassword) ValidateForgottenPasswordRequest(ctx context.Context) []error

func (ChangePassword) ValidateNewPasswordRequiredRequest added in v1.10.0

func (p ChangePassword) ValidateNewPasswordRequiredRequest(ctx context.Context) []error

ValidateNewPasswordRequiredRequest validates the required fields have been submitted and meet the basic structure requirements

type CreateUpdateGroup added in v1.28.0

type CreateUpdateGroup struct {
	Name       *string `json:"name"`
	Precedence *int64  `json:"precedence"`
	ID         *string `json:"id"`
	GroupsList *cognitoidentityprovider.ListGroupsOutput
}

func (*CreateUpdateGroup) BuildCreateGroupInput added in v1.28.0

func (c *CreateUpdateGroup) BuildCreateGroupInput(userPoolId *string) *cognitoidentityprovider.CreateGroupInput

func (*CreateUpdateGroup) BuildSuccessfulJsonResponse added in v1.28.0

func (c *CreateUpdateGroup) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)

func (*CreateUpdateGroup) BuildUpdateGroupInput added in v1.28.0

func (g *CreateUpdateGroup) BuildUpdateGroupInput(userPoolId string) *cognitoidentityprovider.UpdateGroupInput

BuildUpdateGroupInput builds a correctly populated UpdateGroupInput object using Groups values

func (*CreateUpdateGroup) NewSuccessResponse added in v1.28.0

func (c *CreateUpdateGroup) NewSuccessResponse(jsonBody []byte, statusCode int, headers map[string]string) *SuccessResponse

NewSuccessResponse - returns a custom response where group description is returned as group name

func (*CreateUpdateGroup) ValidateCreateUpdateGroupRequest added in v1.28.0

func (g *CreateUpdateGroup) ValidateCreateUpdateGroupRequest(ctx context.Context, isCreate bool) []error

ValidateCreateUpdateGroupRequest validate the create group request

type CreateUserInput

type CreateUserInput struct {
	UserInput *cognitoidentityprovider.AdminCreateUserInput
}

type CreateUserOutput

type CreateUserOutput struct {
	UserOutput *cognitoidentityprovider.AdminCreateUserOutput
}

type Error added in v1.8.0

type Error struct {
	Cause       error  `json:"-"`
	Code        string `json:"code"`
	Description string `json:"description"`
}

func NewCognitoError added in v1.8.0

func NewCognitoError(ctx context.Context, err error, errContext string) *Error

func NewError added in v1.8.0

func NewError(ctx context.Context, cause error, code string, description string) *Error

func NewValidationError added in v1.8.0

func NewValidationError(ctx context.Context, code string, description string) *Error

func (*Error) Error added in v1.8.0

func (e *Error) Error() string

type ErrorResponse added in v1.8.0

type ErrorResponse struct {
	Errors  []error           `json:"errors"`
	Status  int               `json:"-"`
	Headers map[string]string `json:"-"`
}

func NewErrorResponse added in v1.8.0

func NewErrorResponse(statusCode int, headers map[string]string, errors ...error) *ErrorResponse

type GlobalSignOut added in v1.19.0

type GlobalSignOut struct {
	ResultsChannel  chan string
	BackoffSchedule []time.Duration
	RetryAllowed    bool
}

func (GlobalSignOut) BuildSignOutUserRequest added in v1.19.0

func (g GlobalSignOut) BuildSignOutUserRequest(users *[]UserParams, userPoolId *string) []*cognitoidentityprovider.AdminUserGlobalSignOutInput

buildSignOutUserRequest - standalone request builder - builds a signout request array

this is required for concurrent global signout requests

type Group added in v1.13.0

type Group struct {
	ID         string    `json:"id"`
	Name       string    `json:"name"`
	Precedence int64     `json:"precedence"`
	Created    time.Time `json:"created"`
}

Group is a type for the identity API representation of a group's details

func NewAdminRoleGroup added in v1.13.0

func NewAdminRoleGroup() Group

NewAdminRoleGroup is a constructor for a new instance of the admin role group

func NewPublisherRoleGroup added in v1.13.0

func NewPublisherRoleGroup() Group

NewPublisherRoleGroup is a constructor for a new instance of the publisher role group

func (*Group) BuildAddUserToGroupRequest added in v1.15.0

func (g *Group) BuildAddUserToGroupRequest(userPoolId, userId string) *cognitoidentityprovider.AdminAddUserToGroupInput

BuildAddUserToGroupRequest builds a correctly populated AdminAddUserToGroupInput object

func (*Group) BuildCreateGroupRequest added in v1.13.0

func (g *Group) BuildCreateGroupRequest(userPoolId string) *cognitoidentityprovider.CreateGroupInput

BuildCreateGroupRequest builds a correctly populated CreateGroupInput object using the Groups values

func (*Group) BuildDeleteGroupRequest added in v1.29.0

func (g *Group) BuildDeleteGroupRequest(userPoolId string) *cognitoidentityprovider.DeleteGroupInput

BuildDeleteGroupRequest builds a correctly populated DeleteGroupInput object using the Groups values

func (*Group) BuildGetGroupRequest added in v1.13.0

func (g *Group) BuildGetGroupRequest(userPoolId string) *cognitoidentityprovider.GetGroupInput

BuildGetGroupRequest builds a correctly populated GetGroupInput object using the Groups values

func (*Group) BuildListUsersInGroupRequest added in v1.15.0

func (g *Group) BuildListUsersInGroupRequest(userPoolId string) *cognitoidentityprovider.ListUsersInGroupInput

BuildListUsersInGroupRequest builds a correctly populated ListUsersInGroupInput object

func (*Group) BuildListUsersInGroupRequestWithNextToken added in v1.18.0

func (g *Group) BuildListUsersInGroupRequestWithNextToken(userPoolId string, nextToken string) *cognitoidentityprovider.ListUsersInGroupInput

BuildListUsersInGroupRequestWithNextToken builds a correctly populated ListUsersInGroupInput object with Next Token

func (*Group) BuildRemoveUserFromGroupRequest added in v1.16.0

func (g *Group) BuildRemoveUserFromGroupRequest(userPoolId, userId string) *cognitoidentityprovider.AdminRemoveUserFromGroupInput

BuildRemoveUserFromGroupRequest builds a correctly populated AdminRemoveUserFromGroupInput object

func (*Group) BuildSuccessfulJsonResponse added in v1.15.0

func (g *Group) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)

BuildSuccessfulJsonResponse builds the Group response json for client responses

func (*Group) MapCognitoDetails added in v1.15.0

func (g *Group) MapCognitoDetails(groupDetails *cognitoidentityprovider.GroupType)

MapCognitoDetails maps the group details returned from GetGroup requests

func (*Group) ValidateAddRemoveUser added in v1.16.0

func (g *Group) ValidateAddRemoveUser(ctx context.Context, userId string) []error

ValidateAddRemoveUser validates the required fields for adding a user to a group, returns validation errors for anything that fails

type IdClaims

type IdClaims struct {
	Sub           string `json:"sub"`
	Aud           string `json:"aud"`
	EmailVerified bool   `json:"email_verified"`
	TokenUse      string `json:"token_use"`
	AuthTime      int    `json:"auth_time"`
	Iss           string `json:"iss"`
	CognitoUser   string `json:"cognito:username"`
	Exp           int    `json:"exp"`
	GivenName     string `json:"given_name"`
	Iat           int    `json:"iat"`
	Email         string `json:"email"`
	jwt.StandardClaims
}

type IdToken

type IdToken struct {
	TokenString string
	Claims      IdClaims
}

func (*IdToken) ParseWithoutValidating

func (t *IdToken) ParseWithoutValidating(ctx context.Context, tokenString string) *Error

ParseWithoutValidating parses the claims in an ID token JWT in to a IdClaims struct without validating the token

func (*IdToken) Validate

func (t *IdToken) Validate(ctx context.Context) *Error

Validate validates the existence of a JWT string and that it is correctly formatting, storing the tokens claims in an IdClaims struct

type ListGroupUsersType added in v1.51.0

type ListGroupUsersType struct {
	GroupName string `type:"string" json:"group"`
	UserEmail string `type:"string" json:"user"`
}

ListGroupUsersType list of groups and the membership for user report group-report

type ListUserGroupType added in v1.21.0

type ListUserGroupType struct {
	CreationDate     *time.Time `type:"timestamp" json:"creation_date"`
	Name             *string    `type:"string" json:"name"`
	ID               *string    `min:"1" type:"string" json:"id"`
	LastModifiedDate *time.Time `type:"timestamp" json:"last_modified_date"`
	Precedence       *int64     `type:"integer" json:"precedence"`
	RoleArn          *string    `min:"20" type:"string" json:"role_arn"`
	UserPoolId       *string    `min:"1" type:"string" json:"user_pool_id"`
}

ListUserGroupType output structure from cognitoidentityprovider.AdminListGroupsForUserOutput but changing the json output

func (*ListUserGroupType) BuildListGroupsRequest added in v1.25.0

func (g *ListUserGroupType) BuildListGroupsRequest(userPoolId string, nextToken string) *cognitoidentityprovider.ListGroupsInput

BuildListGroupsRequest build the require input for cognito query to obtain the groups for given user

type ListUserGroups added in v1.21.0

type ListUserGroups struct {
	Groups    []*ListUserGroupType `json:"groups"`
	NextToken *string              `json:"next_token"`
	Count     int                  `json:"count"`
}

ListUserGroups list of groups for user output structure from cognitoidentityprovider.AdminListGroupsForUserOutput with count of total groups returned

func (*ListUserGroups) BuildListGroupsSuccessfulJsonResponse added in v1.25.0

func (g *ListUserGroups) BuildListGroupsSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.ListGroupsOutput) ([]byte, error)

BuildListGroupsSuccessfulJsonResponse formats the output to comply with current standards and to json , adds the count of groups returned and

func (*ListUserGroups) BuildListUserGroupsSuccessfulJsonResponse added in v1.21.0

func (p *ListUserGroups) BuildListUserGroupsSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.AdminListGroupsForUserOutput) ([]byte, error)

BuildListUserGroupsSuccessfulJsonResponse formats the output to comply with current standards and to json , adds the count of groups returned and

type ListUsersInput

type ListUsersInput struct {
	ListUsersInput *cognitoidentityprovider.ListUsersInput
}

type ListUsersOutput

type ListUsersOutput struct {
	ListUsersOutput *cognitoidentityprovider.ListUsersOutput
}

type PasswordReset added in v1.11.0

type PasswordReset struct {
	Email string `json:"email"`
}

func (PasswordReset) BuildCognitoRequest added in v1.11.0

func (p PasswordReset) BuildCognitoRequest(clientSecret string, clientId string) *cognitoidentityprovider.ForgotPasswordInput

func (*PasswordReset) Validate added in v1.11.0

func (p *PasswordReset) Validate(ctx context.Context) error

type RefreshToken

type RefreshToken struct {
	TokenString string
}

func (*RefreshToken) BuildSuccessfulJsonResponse added in v1.8.0

func (t *RefreshToken) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput) ([]byte, error)

func (*RefreshToken) GenerateRefreshRequest

func (t *RefreshToken) GenerateRefreshRequest(clientSecret string, username string, clientId string) *cognitoidentityprovider.InitiateAuthInput

GenerateRefreshRequest produces a Cognito InitiateAuthInput struct for refreshing a users current session

func (*RefreshToken) Validate

func (t *RefreshToken) Validate(ctx context.Context) *Error

Validate validates the existence of a JWT string

type SuccessResponse added in v1.8.0

type SuccessResponse struct {
	Body    []byte            `json:"-"`
	Status  int               `json:"-"`
	Headers map[string]string `json:"-"`
}

func NewSuccessResponse added in v1.8.0

func NewSuccessResponse(jsonBody []byte, statusCode int, headers map[string]string) *SuccessResponse

type UserParams

type UserParams struct {
	Forename    string   `json:"forename"`
	Lastname    string   `json:"lastname"`
	Email       string   `json:"email"`
	Password    string   `json:"-"`
	Groups      []string `json:"groups"`
	Status      string   `json:"status"`
	Active      bool     `json:"active"`
	ID          string   `json:"id"`
	StatusNotes string   `json:"status_notes"`
}

UserParams Model for the User

func (UserParams) BuildAdminGetUserRequest added in v1.12.0

func (p UserParams) BuildAdminGetUserRequest(userPoolId string) *cognitoidentityprovider.AdminGetUserInput

BuildAdminGetUserRequest generates a AdminGetUserInput for Cognito

func (UserParams) BuildCreateUserRequest added in v1.8.0

func (p UserParams) BuildCreateUserRequest(userId string, userPoolId string) *cognitoidentityprovider.AdminCreateUserInput

BuildCreateUserRequest generates a AdminCreateUserInput for Cognito

func (UserParams) BuildDisableUserRequest added in v1.15.0

func (p UserParams) BuildDisableUserRequest(userPoolId string) *cognitoidentityprovider.AdminDisableUserInput

BuildDisableUserRequest generates a AdminDisableUserInput for Cognito

func (UserParams) BuildEnableUserRequest added in v1.15.0

func (p UserParams) BuildEnableUserRequest(userPoolId string) *cognitoidentityprovider.AdminEnableUserInput

BuildEnableUserRequest generates a AdminEnableUserInput for Cognito

func (UserParams) BuildListUserGroupsRequest added in v1.21.0

func (p UserParams) BuildListUserGroupsRequest(userPoolId string, nextToken string) *cognitoidentityprovider.AdminListGroupsForUserInput

BuildListUserGroupsRequest build the required input for cognito query to obtain the groups for given user

func (UserParams) BuildSuccessfulJsonResponse added in v1.8.0

func (p UserParams) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)

BuildSuccessfulJsonResponse builds the UserParams response json for client responses

func (UserParams) BuildUpdateUserRequest added in v1.13.0

func (p UserParams) BuildUpdateUserRequest(userPoolId string) *cognitoidentityprovider.AdminUpdateUserAttributesInput

BuildUpdateUserRequest generates a AdminUpdateUserAttributesInput for Cognito

func (UserParams) CheckForDuplicateEmail added in v1.8.0

func (p UserParams) CheckForDuplicateEmail(ctx context.Context, listUserResp *cognitoidentityprovider.ListUsersOutput) error

CheckForDuplicateEmail checks the Cognito response for users already using the email address, returning a validation error if found

func (*UserParams) GeneratePassword added in v1.8.0

func (p *UserParams) GeneratePassword(ctx context.Context) error

GeneratePassword creates a password for the user and assigns it to the struct

func (UserParams) MapCognitoDetails added in v1.11.0

func (p UserParams) MapCognitoDetails(userDetails *cognitoidentityprovider.UserType) UserParams

MapCognitoDetails maps the details from the Cognito ListUser User model to the UserParams model

func (*UserParams) MapCognitoGetResponse added in v1.12.0

func (p *UserParams) MapCognitoGetResponse(userDetails *cognitoidentityprovider.AdminGetUserOutput)

MapCognitoGetResponse maps the details from the Cognito GetUser User model to the UserParams model

func (UserParams) ValidateRegistration added in v1.8.0

func (p UserParams) ValidateRegistration(ctx context.Context, allowedDomains []string) []error

ValidateRegistration validates the required fields for user creation, returning validation errors for any failures

func (UserParams) ValidateUpdate added in v1.13.0

func (p UserParams) ValidateUpdate(ctx context.Context) []error

ValidateUpdate validates the required fields for user update, returning validation errors for any failures

type UserSignIn added in v1.8.0

type UserSignIn struct {
	Email    string `json:"email"`
	Password string `json:"password"`
}

func (*UserSignIn) BuildCognitoRequest added in v1.8.0

func (p *UserSignIn) BuildCognitoRequest(clientId string, clientSecret string, clientAuthFlow string) *cognitoidentityprovider.InitiateAuthInput

BuildCognitoRequest generates a InitiateAuthInput for Cognito

func (*UserSignIn) BuildSuccessfulJsonResponse added in v1.8.0

func (p *UserSignIn) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput, refreshTokenTTL int) ([]byte, error)

BuildSuccessfulJsonResponse builds the UserSignIn response json for client responses

func (*UserSignIn) ValidateCredentials added in v1.8.0

func (p *UserSignIn) ValidateCredentials(ctx context.Context) *[]error

ValidateCredentials validates the required fields have been submitted and meet the basic structure requirements

type UsersList added in v1.11.0

type UsersList struct {
	Count           int          `json:"count"`
	Users           []UserParams `json:"users"`
	PaginationToken string
}

func (UsersList) BuildListUserRequest added in v1.11.0

func (p UsersList) BuildListUserRequest(filterString string, requiredAttribute string, limit int64, paginationToken *string, userPoolId *string) *cognitoidentityprovider.ListUsersInput

BuildListUserRequest generates a ListUsersInput object for Cognito

func (*UsersList) BuildSuccessfulJsonResponse added in v1.11.0

func (p *UsersList) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)

BuildSuccessfulJsonResponse builds the UsersList response json for client responses

func (*UsersList) MapCognitoUsers added in v1.11.0

func (p *UsersList) MapCognitoUsers(cognitoResults *[]*cognitoidentityprovider.UserType)

MapCognitoUsers maps the users from the cognito response into the UsersList Users attribute and sets the Count attribute

func (*UsersList) SetUsers added in v1.20.0

func (p *UsersList) SetUsers(usersList *[]UserParams)

SetUsers sets the UsersList Users attribute and sets the Count attribute

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL