keycloak

package module
v1.2.9 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2020 License: AGPL-3.0 Imports: 24 Imported by: 51

README

Basic keycloak client in go

This repo provides a basic keycloak client in go.

Documentation

Index

Constants

View Source
const (
	MsgErrMissingParam              = "missingParameter"
	MsgErrInvalidParam              = "invalidParameter"
	MsgErrCannotObtain              = "cannotObtain"
	MsgErrCannotMarshal             = "cannotMarshal"
	MsgErrCannotUnmarshal           = "cannotUnmarshal"
	MsgErrCannotParse               = "cannotParse"
	MsgErrCannotCreate              = "cannotCreate"
	MsgErrUnkownHTTPContentType     = "unkownHTTPContentType"
	MsgErrUnknownResponseStatusCode = "unknownResponseStatusCode"
	MsgErrExistingValue             = "existing"
	MsgErrReadOnly                  = "readOnlyValue"

	EvenParams       = "key/valParametersShouldBeEven"
	TokenProviderURL = "tokenProviderURL"
	APIURL           = "APIURL"
	TokenMsg         = "token"
	Response         = "response"
	AccessToken      = "accessToken"
	OIDCProvider     = "OIDCProvider"
	UserOrEmail      = "UsernameOrEmail"
	Username         = "username"
	Email            = "email"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountClient

type AccountClient struct {
	// contains filtered or unexported fields
}

AccountClient structure

func (*AccountClient) DeleteAccount

func (c *AccountClient) DeleteAccount(accessToken string, realmName string) error

DeleteAccount delete current user

func (*AccountClient) DeleteCredential

func (c *AccountClient) DeleteCredential(accessToken string, realmName string, credentialID string) error

DeleteCredential deletes the credential

func (*AccountClient) GetAccount

func (c *AccountClient) GetAccount(accessToken string, realm string) (UserRepresentation, error)

GetAccount provides the user's information

func (*AccountClient) GetCredentialRegistrators

func (c *AccountClient) GetCredentialRegistrators(accessToken string, realmName string) ([]string, error)

GetCredentialRegistrators returns list of credentials types available for the user

func (*AccountClient) GetCredentials

func (c *AccountClient) GetCredentials(accessToken string, realmName string) ([]CredentialRepresentation, error)

GetCredentials returns the list of credentials of the user

func (*AccountClient) MoveAfter

func (c *AccountClient) MoveAfter(accessToken string, realmName string, credentialID string, previousCredentialID string) error

MoveAfter moves the credential after the specified one into the list

func (*AccountClient) MoveToFirst

func (c *AccountClient) MoveToFirst(accessToken string, realmName string, credentialID string) error

MoveToFirst moves the credential at the top of the list

func (*AccountClient) UpdateAccount

func (c *AccountClient) UpdateAccount(accessToken string, realm string, user UserRepresentation) error

UpdateAccount updates the user's information

func (*AccountClient) UpdateLabelCredential

func (c *AccountClient) UpdateLabelCredential(accessToken string, realmName string, credentialID string, label string) error

UpdateLabelCredential updates the label of credential

func (*AccountClient) UpdatePassword

func (c *AccountClient) UpdatePassword(accessToken, realm, currentPassword, newPassword, confirmPassword string) (string, error)

UpdatePassword updates the user's password Parameters: realm, currentPassword, newPassword, confirmPassword

type AdminEventRepresentation

type AdminEventRepresentation struct {
	AuthDetails    *AuthDetailsRepresentation `json:"authDetails,omitempty"`
	Error          *string                    `json:"error,omitempty"`
	OperationType  *string                    `json:"operationType,omitempty"`
	RealmId        *string                    `json:"realmId,omitempty"`
	Representation *string                    `json:"representation,omitempty"`
	ResourcePath   *string                    `json:"resourcePath,omitempty"`
	ResourceType   *string                    `json:"resourceType,omitempty"`
	Time           *int64                     `json:"time,omitempty"`
}

type AuthDetailsRepresentation

type AuthDetailsRepresentation struct {
	ClientId  *string `json:"clientId,omitempty"`
	IpAddress *string `json:"ipAddress,omitempty"`
	RealmId   *string `json:"realmId,omitempty"`
	UserId    *string `json:"userId,omitempty"`
}

type AuthenticationExecutionExportRepresentation

type AuthenticationExecutionExportRepresentation struct {
	Authenticator       *string `json:"authenticator,omitempty"`
	AuthenticatorConfig *string `json:"authenticatorConfig,omitempty"`
	AuthenticatorFlow   *bool   `json:"authenticatorFlow,omitempty"`
	AutheticatorFlow    *bool   `json:"autheticatorFlow,omitempty"`
	FlowAlias           *string `json:"flowAlias,omitempty"`
	Priority            *int32  `json:"priority,omitempty"`
	Requirement         *string `json:"requirement,omitempty"`
	UserSetupAllowed    *bool   `json:"userSetupAllowed,omitempty"`
}

type AuthenticationExecutionInfoRepresentation

type AuthenticationExecutionInfoRepresentation struct {
	Alias                *string   `json:"alias,omitempty"`
	AuthenticationConfig *string   `json:"authenticationConfig,omitempty"`
	AuthenticationFlow   *bool     `json:"authenticationFlow,omitempty"`
	Configurable         *bool     `json:"configurable,omitempty"`
	DisplayName          *string   `json:"displayName,omitempty"`
	FlowId               *string   `json:"flowId,omitempty"`
	Id                   *string   `json:"id,omitempty"`
	Index                *int32    `json:"index,omitempty"`
	Level                *int32    `json:"level,omitempty"`
	ProviderId           *string   `json:"providerId,omitempty"`
	Requirement          *string   `json:"requirement,omitempty"`
	RequirementChoices   *[]string `json:"requirementChoices,omitempty"`
}

type AuthenticationExecutionRepresentation

type AuthenticationExecutionRepresentation struct {
	Authenticator       *string `json:"authenticator,omitempty"`
	AuthenticatorConfig *string `json:"authenticatorConfig,omitempty"`
	AuthenticatorFlow   *bool   `json:"authenticatorFlow,omitempty"`
	AutheticatorFlow    *bool   `json:"autheticatorFlow,omitempty"`
	FlowId              *string `json:"flowId,omitempty"`
	Id                  *string `json:"id,omitempty"`
	ParentFlow          *string `json:"parentFlow,omitempty"`
	Priority            *int32  `json:"priority,omitempty"`
	Requirement         *string `json:"requirement,omitempty"`
}

type AuthenticationFlowRepresentation

type AuthenticationFlowRepresentation struct {
	Alias                    *string                                        `json:"alias,omitempty"`
	AuthenticationExecutions *[]AuthenticationExecutionExportRepresentation `json:"authenticationExecutions,omitempty"`
	BuiltIn                  *bool                                          `json:"builtIn,omitempty"`
	Description              *string                                        `json:"description,omitempty"`
	Id                       *string                                        `json:"id,omitempty"`
	ProviderId               *string                                        `json:"providerId,omitempty"`
	TopLevel                 *bool                                          `json:"topLevel,omitempty"`
}

type AuthenticatorConfigInfoRepresentation

type AuthenticatorConfigInfoRepresentation struct {
	HelpText   *string                         `json:"helpText,omitempty"`
	Name       *string                         `json:"name,omitempty"`
	Properties *[]ConfigPropertyRepresentation `json:"properties,omitempty"`
	ProviderId *string                         `json:"providerId,omitempty"`
}

type AuthenticatorConfigRepresentation

type AuthenticatorConfigRepresentation struct {
	Alias  *string                 `json:"alias,omitempty"`
	Config *map[string]interface{} `json:"config,omitempty"`
	Id     *string                 `json:"id,omitempty"`
}

type CertificateRepresentation

type CertificateRepresentation struct {
	Certificate *string `json:"certificate,omitempty"`
	Kid         *string `json:"kid,omitempty"`
	PrivateKey  *string `json:"privateKey,omitempty"`
	PublicKey   *string `json:"publicKey,omitempty"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is the keycloak client.

func New

func New(config Config) (*Client, error)

New returns a keycloak client.

func (*Client) AccountClient

func (c *Client) AccountClient() *AccountClient

AccountClient gets the associated AccountClient

func (*Client) AddClientRolesToUserRoleMapping

func (c *Client) AddClientRolesToUserRoleMapping(accessToken string, realmName, userID, clientID string, roles []RoleRepresentation) error

AddClientRolesToUserRoleMapping add client-level roles to the user role mapping.

func (*Client) AssignClientRole added in v1.2.3

func (c *Client) AssignClientRole(accessToken string, realmName string, groupID string, clientID string, roles []RoleRepresentation) error

AssignClientRole assigns client roles to a specific group

func (*Client) ClearAllLoginFailures

func (c *Client) ClearAllLoginFailures(accessToken string, realmName string) error

ClearAllLoginFailures clears any user login failures for all users. This can release temporary disabled users.

func (*Client) ClearUserLoginFailures

func (c *Client) ClearUserLoginFailures(accessToken string, realmName, userID string) error

ClearUserLoginFailures clear any user login failures for the user. This can release temporary disabled user.

func (*Client) CopyExistingAuthenticationFlow

func (c *Client) CopyExistingAuthenticationFlow(accessToken string, realmName, flowAlias, newName string) error

CopyExistingAuthenticationFlow copy the existing authentication flow under a new name. 'flowAlias' is the name of the existing authentication flow, 'newName' is the new name of the authentication flow.

func (*Client) CountUsers

func (c *Client) CountUsers(accessToken string, realmName string) (int, error)

CountUsers returns the number of users in the realm.

func (*Client) CreateAuthenticationExecution

func (c *Client) CreateAuthenticationExecution(accessToken string, realmName string, authExec AuthenticationExecutionRepresentation) (string, error)

CreateAuthenticationExecution add new authentication execution

func (*Client) CreateAuthenticationExecutionForFlow

func (c *Client) CreateAuthenticationExecutionForFlow(accessToken string, realmName, flowAlias, provider string) (string, error)

CreateAuthenticationExecutionForFlow add a new authentication execution to a flow. 'flowAlias' is the alias of the parent flow.

func (*Client) CreateAuthenticationFlow

func (c *Client) CreateAuthenticationFlow(accessToken string, realmName string, authFlow AuthenticationFlowRepresentation) error

CreateAuthenticationFlow creates a new authentication flow.

func (*Client) CreateClientInitialAccess

func (c *Client) CreateClientInitialAccess(accessToken string, realmName string, access ClientInitialAccessCreatePresentation) (ClientInitialAccessPresentation, error)

CreateClientInitialAccess creates a new initial access token.

func (*Client) CreateClientRole

func (c *Client) CreateClientRole(accessToken string, realmName, clientID string, role RoleRepresentation) (string, error)

CreateClientRole creates a new role for the realm or client

func (*Client) CreateFlowWithExecutionForExistingFlow

func (c *Client) CreateFlowWithExecutionForExistingFlow(accessToken string, realmName, flowAlias, alias, flowType, provider, description string) (string, error)

CreateFlowWithExecutionForExistingFlow add a new flow with a new execution to an existing flow. 'flowAlias' is the alias of the parent authentication flow.

func (*Client) CreateGroup added in v1.2.3

func (c *Client) CreateGroup(accessToken string, reqRealmName string, group GroupRepresentation) (string, error)

CreateGroup creates the group from its GroupRepresentation. The group name must be unique.

func (*Client) CreateRealm

func (c *Client) CreateRealm(accessToken string, realm RealmRepresentation) (string, error)

CreateRealm creates the realm from its RealmRepresentation.

func (*Client) CreateRecoveryCode added in v1.2.2

func (c *Client) CreateRecoveryCode(accessToken string, realmName string, userID string) (RecoveryCodeRepresentation, error)

CreateRecoveryCode creates a new recovery code authenticator and returns the code.

func (*Client) CreateShadowUser added in v1.2.5

func (c *Client) CreateShadowUser(accessToken string, reqRealmName string, userID string, provider string, fedIDKC FederatedIdentityRepresentation) error

CreateShadowUser creates the a shadow user in the context of brokering

func (*Client) CreateUser

func (c *Client) CreateUser(accessToken string, reqRealmName, targetRealmName string, user UserRepresentation) (string, error)

CreateUser creates the user from its UserRepresentation. The username must be unique.

func (*Client) DeleteAuthenticationExecution

func (c *Client) DeleteAuthenticationExecution(accessToken string, realmName, executionID string) error

DeleteAuthenticationExecution deletes the execution.

func (*Client) DeleteAuthenticationFlow

func (c *Client) DeleteAuthenticationFlow(accessToken string, realmName, flowID string) error

DeleteAuthenticationFlow deletes an authentication flow.

func (*Client) DeleteAuthenticatorConfig

func (c *Client) DeleteAuthenticatorConfig(accessToken string, realmName, configID string) error

DeleteAuthenticatorConfig deletes the authenticator configuration.

func (*Client) DeleteClientInitialAccess

func (c *Client) DeleteClientInitialAccess(accessToken string, realmName, accessID string) error

DeleteClientInitialAccess deletes the client initial access.

func (*Client) DeleteClientRolesFromUserRoleMapping

func (c *Client) DeleteClientRolesFromUserRoleMapping(accessToken string, realmName, userID, clientID string) error

DeleteClientRolesFromUserRoleMapping deletes client-level roles from user role mapping.

func (*Client) DeleteCredential

func (c *Client) DeleteCredential(accessToken string, realmName string, userID string, credentialID string) error

DeleteCredential deletes the credential

func (*Client) DeleteGroup added in v1.2.3

func (c *Client) DeleteGroup(accessToken string, realmName string, groupID string) error

DeleteGroup deletes a specific group’s representation

func (*Client) DeleteRealm

func (c *Client) DeleteRealm(accessToken string, realmName string) error

DeleteRealm deletes the realm.

func (*Client) DeleteRequiredAction

func (c *Client) DeleteRequiredAction(accessToken string, realmName, actionAlias string) error

DeleteRequiredAction deletes the required action.

func (*Client) DeleteUser

func (c *Client) DeleteUser(accessToken string, realmName, userID string) error

DeleteUser deletes the user.

func (*Client) ExecuteActionsEmail

func (c *Client) ExecuteActionsEmail(accessToken string, realmName string, userID string, actions []string, paramKV ...string) error

ExecuteActionsEmail sends an update account email to the user. An email contains a link the user can click to perform a set of required actions.

func (*Client) ExportRealm

func (c *Client) ExportRealm(accessToken string, realmName string) (RealmRepresentation, error)

ExportRealm recovers the full realm.

func (*Client) GenerateCertificate

func (c *Client) GenerateCertificate(accessToken string, realmName, idClient, attr string) (CertificateRepresentation, error)

GenerateCertificate generates a new certificate with new key pair. idClient is the id of client (not client-id).

func (*Client) GenerateKeyPairAndCertificate

func (c *Client) GenerateKeyPairAndCertificate(accessToken string, realmName, idClient, attr string, keyStoreConfig KeyStoreConfig) ([]byte, error)

GenerateKeyPairAndCertificate generates a keypair and certificate and serves the private key in a specified keystore format.

func (*Client) GetAttackDetectionStatus

func (c *Client) GetAttackDetectionStatus(accessToken string, realmName, userID string) (map[string]interface{}, error)

GetAttackDetectionStatus gets the status of a username in brute force detection.

func (*Client) GetAuthenticationExecutionForFlow

func (c *Client) GetAuthenticationExecutionForFlow(accessToken string, realmName, flowAlias string) (AuthenticationExecutionInfoRepresentation, error)

GetAuthenticationExecutionForFlow returns the authentication executions for a flow.

func (*Client) GetAuthenticationFlow

func (c *Client) GetAuthenticationFlow(accessToken string, realmName, flowID string) (AuthenticationFlowRepresentation, error)

GetAuthenticationFlow gets the authentication flow for id.

func (*Client) GetAuthenticationFlows

func (c *Client) GetAuthenticationFlows(accessToken string, realmName string) ([]AuthenticationFlowRepresentation, error)

GetAuthenticationFlows returns a list of authentication flows.

func (*Client) GetAuthenticatorConfig

func (c *Client) GetAuthenticatorConfig(accessToken string, realmName, configID string) (AuthenticatorConfigRepresentation, error)

GetAuthenticatorConfig returns the authenticator configuration.

func (*Client) GetAuthenticatorProviderConfig

func (c *Client) GetAuthenticatorProviderConfig(accessToken string, realmName, providerID string) (AuthenticatorConfigInfoRepresentation, error)

GetAuthenticatorProviderConfig returns the authenticator provider’s configuration description.

func (*Client) GetAuthenticatorProviders

func (c *Client) GetAuthenticatorProviders(accessToken string, realmName string) ([]map[string]interface{}, error)

GetAuthenticatorProviders returns a list of authenticator providers.

func (*Client) GetAvailableGroupClientRoles added in v1.2.3

func (c *Client) GetAvailableGroupClientRoles(accessToken string, realmName string, groupID string, clientID string) ([]RoleRepresentation, error)

GetAvailableGroupClientRoles gets client roles available in a specific group

func (*Client) GetClient

func (c *Client) GetClient(accessToken string, realmName, idClient string) (ClientRepresentation, error)

GetClient get the representation of the client. idClient is the id of client (not client-id).

func (*Client) GetClientAuthenticatorProviders

func (c *Client) GetClientAuthenticatorProviders(accessToken string, realmName string) ([]map[string]interface{}, error)

GetClientAuthenticatorProviders returns a list of client authenticator providers.

func (*Client) GetClientInitialAccess

func (c *Client) GetClientInitialAccess(accessToken string, realmName string) ([]ClientInitialAccessPresentation, error)

GetClientInitialAccess returns a list of clients initial access.

func (*Client) GetClientRegistrationPolicy

func (c *Client) GetClientRegistrationPolicy(accessToken string, realmName, configID string) ([]ComponentTypeRepresentation, error)

GetClientRegistrationPolicy is the base path to retrieve providers with the configProperties properly filled.

func (*Client) GetClientRoleMappings

func (c *Client) GetClientRoleMappings(accessToken string, realmName, userID, clientID string) ([]RoleRepresentation, error)

GetClientRoleMappings gets client-level role mappings for the user, and the app.

func (*Client) GetClientRoles

func (c *Client) GetClientRoles(accessToken string, realmName, idClient string) ([]RoleRepresentation, error)

GetClientRoles gets all roles for the realm or client

func (*Client) GetClients

func (c *Client) GetClients(accessToken string, realmName string, paramKV ...string) ([]ClientRepresentation, error)

GetClients returns a list of clients belonging to the realm. Parameters: clientId (filter by clientId), viewableOnly (filter clients that cannot be viewed in full by admin, default="false")

func (*Client) GetConfigDescriptionForClients

func (c *Client) GetConfigDescriptionForClients(accessToken string, realmName string) (map[string]interface{}, error)

GetConfigDescriptionForClients returns the configuration descriptions for all clients.

func (*Client) GetCredentialTypes

func (c *Client) GetCredentialTypes(accessToken string, realmName string) ([]string, error)

GetCredentialTypes returns list of credentials types available for the realm

func (*Client) GetCredentials

func (c *Client) GetCredentials(accessToken string, realmName string, userID string) ([]CredentialRepresentation, error)

GetCredentials returns the list of credentials of the user

func (*Client) GetFormActionProviders

func (c *Client) GetFormActionProviders(accessToken string, realmName string) ([]map[string]interface{}, error)

GetFormActionProviders returns a list of form action providers.

func (*Client) GetFormProviders

func (c *Client) GetFormProviders(accessToken string, realmName string) ([]map[string]interface{}, error)

GetFormProviders returns a list of form providers.

func (*Client) GetGroup

func (c *Client) GetGroup(accessToken string, realmName string, groupID string) (GroupRepresentation, error)

GetGroup gets a specific group’s representation

func (*Client) GetGroupClientRoles added in v1.2.3

func (c *Client) GetGroupClientRoles(accessToken string, realmName string, groupID string, clientID string) ([]RoleRepresentation, error)

GetGroupClientRoles gets client roles assigned to a specific group

func (*Client) GetGroups

func (c *Client) GetGroups(accessToken string, realmName string) ([]GroupRepresentation, error)

GetGroups gets all groups for the realm

func (*Client) GetGroupsOfUser

func (c *Client) GetGroupsOfUser(accessToken string, realmName, userID string) ([]GroupRepresentation, error)

GetGroupsOfUser get the groups of the user.

func (*Client) GetKeyInfo

func (c *Client) GetKeyInfo(accessToken string, realmName, idClient, attr string) (CertificateRepresentation, error)

GetKeyInfo returns the key info. idClient is the id of client (not client-id).

func (*Client) GetKeyStore

func (c *Client) GetKeyStore(accessToken string, realmName, idClient, attr string, keyStoreConfig KeyStoreConfig) ([]byte, error)

GetKeyStore returns a keystore file for the client, containing private key and public certificate. idClient is the id of client (not client-id).

func (*Client) GetRealm

func (c *Client) GetRealm(accessToken string, realmName string) (RealmRepresentation, error)

GetRealm get the top level represention of the realm. Nested information like users are not included.

func (*Client) GetRealmCredentialRegistrators

func (c *Client) GetRealmCredentialRegistrators(accessToken string, realmName string) ([]string, error)

GetRealmCredentialRegistrators returns list of credentials types available for the realm

func (*Client) GetRealmLevelRoleMappings

func (c *Client) GetRealmLevelRoleMappings(accessToken string, realmName, userID string) ([]RoleRepresentation, error)

GetRealmLevelRoleMappings gets realm level role mappings

func (*Client) GetRealms

func (c *Client) GetRealms(accessToken string) ([]RealmRepresentation, error)

GetRealms get the top level represention of all the realms. Nested information like users are not included.

func (*Client) GetRequiredAction

func (c *Client) GetRequiredAction(accessToken string, realmName, actionAlias string) (RequiredActionProviderRepresentation, error)

GetRequiredAction returns the required action for the alias.

func (*Client) GetRequiredActions

func (c *Client) GetRequiredActions(accessToken string, realmName string) ([]RequiredActionProviderRepresentation, error)

GetRequiredActions returns a list of required actions.

func (*Client) GetRole

func (c *Client) GetRole(accessToken string, realmName string, roleID string) (RoleRepresentation, error)

GetRole gets a specific role’s representation

func (*Client) GetRoles

func (c *Client) GetRoles(accessToken string, realmName string) ([]RoleRepresentation, error)

GetRoles gets all roles for the realm or client

func (*Client) GetSecret

func (c *Client) GetSecret(accessToken string, realmName, idClient string) (CredentialRepresentation, error)

GetSecret get the client secret. idClient is the id of client (not client-id).

func (*Client) GetStatisticsAuthenticators added in v1.1.2

func (c *Client) GetStatisticsAuthenticators(accessToken string, realmName string) (map[string]int64, error)

GetStatisticsAuthenticators returns statistics on the authenticators used by the users on a certain realm

func (*Client) GetStatisticsUsers added in v1.1.2

func (c *Client) GetStatisticsUsers(accessToken string, realmName string) (StatisticsUsersRepresentation, error)

GetStatisticsUsers returns statisctics on the total number of users and on their status

func (*Client) GetToken

func (c *Client) GetToken(realm string, username string, password string) (string, error)

GetToken returns a valid token from keycloak

func (*Client) GetUnregisteredRequiredActions

func (c *Client) GetUnregisteredRequiredActions(accessToken string, realmName string) ([]map[string]interface{}, error)

GetUnregisteredRequiredActions returns a list of unregistered required actions.

func (*Client) GetUser

func (c *Client) GetUser(accessToken string, realmName, userID string) (UserRepresentation, error)

GetUser get the represention of the user.

func (*Client) GetUsers

func (c *Client) GetUsers(accessToken string, reqRealmName, targetRealmName string, paramKV ...string) (UsersPageRepresentation, error)

GetUsers returns a list of users, filtered according to the query parameters. Parameters: email, first (paging offset, int), firstName, lastName, username, max (maximum result size, default = 100), search (string contained in username, firstname, lastname or email)

func (*Client) LowerExecutionPriority

func (c *Client) LowerExecutionPriority(accessToken string, realmName, executionID string) error

LowerExecutionPriority lowers the execution’s priority.

func (*Client) MoveAfter

func (c *Client) MoveAfter(accessToken string, realmName string, userID string, credentialID string, previousCredentialID string) error

MoveAfter moves the credential after the specified one into the list

func (*Client) MoveToFirst

func (c *Client) MoveToFirst(accessToken string, realmName string, userID string, credentialID string) error

MoveToFirst moves the credential at the top of the list

func (*Client) RaiseExecutionPriority

func (c *Client) RaiseExecutionPriority(accessToken string, realmName, executionID string) error

RaiseExecutionPriority raise the execution’s priority.

func (*Client) RegisterRequiredAction

func (c *Client) RegisterRequiredAction(accessToken string, realmName, providerID, name string) error

RegisterRequiredAction register a new required action.

func (*Client) RemoveClientRole added in v1.2.3

func (c *Client) RemoveClientRole(accessToken string, realmName string, groupID string, clientID string, roles []RoleRepresentation) error

RemoveClientRole deletes client roles from a specific group

func (*Client) ResetPassword

func (c *Client) ResetPassword(accessToken string, realmName, userID string, cred CredentialRepresentation) error

ResetPassword resets password of the user.

func (*Client) SendNewEnrolmentCode

func (c *Client) SendNewEnrolmentCode(accessToken string, realmName string, userID string) (SmsCodeRepresentation, error)

SendNewEnrolmentCode sends a new enrolment code and return it

func (*Client) SendReminderEmail

func (c *Client) SendReminderEmail(accessToken string, realmName string, userID string, paramKV ...string) error

SendReminderEmail sends a reminder email to a user

func (*Client) UpdateAuthenticationExecution

func (c *Client) UpdateAuthenticationExecution(accessToken string, realmName, executionID string, authConfig AuthenticatorConfigRepresentation) error

UpdateAuthenticationExecution update execution with new configuration.

func (*Client) UpdateAuthenticationExecutionForFlow

func (c *Client) UpdateAuthenticationExecutionForFlow(accessToken string, realmName, flowAlias string, authExecInfo AuthenticationExecutionInfoRepresentation) error

UpdateAuthenticationExecutionForFlow updates the authentication executions of a flow.

func (*Client) UpdateAuthenticatorConfig

func (c *Client) UpdateAuthenticatorConfig(accessToken string, realmName, configID string, config AuthenticatorConfigRepresentation) error

UpdateAuthenticatorConfig updates the authenticator configuration.

func (*Client) UpdateLabelCredential

func (c *Client) UpdateLabelCredential(accessToken string, realmName string, userID string, credentialID string, label string) error

UpdateLabelCredential updates the label of credential

func (*Client) UpdatePassword

func (c *Client) UpdatePassword(accessToken, realm, currentPassword, newPassword, confirmPassword string) (string, error)

UpdatePassword updates the user's password Parameters: realm, currentPassword, newPassword, confirmPassword

func (*Client) UpdateRealm

func (c *Client) UpdateRealm(accessToken string, realmName string, realm RealmRepresentation) error

UpdateRealm update the top lovel information of the realm. Any user, role or client information from the realm representation will be ignored.

func (*Client) UpdateRequiredAction

func (c *Client) UpdateRequiredAction(accessToken string, realmName, actionAlias string, action RequiredActionProviderRepresentation) error

UpdateRequiredAction updates the required action.

func (*Client) UpdateUser

func (c *Client) UpdateUser(accessToken string, realmName, userID string, user UserRepresentation) error

UpdateUser updates the user.

func (*Client) UploadCertificate

func (c *Client) UploadCertificate(accessToken string, realmName, idClient, attr string, file []byte) (CertificateRepresentation, error)

UploadCertificate uploads only a certificate, not the private key.

func (*Client) UploadCertificatePrivateKey

func (c *Client) UploadCertificatePrivateKey(accessToken string, realmName, idClient, attr string, file []byte) (CertificateRepresentation, error)

UploadCertificatePrivateKey uploads a certificate and eventually a private key.

func (*Client) VerifyToken

func (c *Client) VerifyToken(ctx context.Context, realmName string, accessToken string) error

VerifyToken verifies a token. It returns an error it is malformed, expired,...

type ClientInitialAccessCreatePresentation

type ClientInitialAccessCreatePresentation struct {
	Count      *int32 `json:"count,omitempty"`
	Expiration *int32 `json:"expiration,omitempty"`
}

type ClientInitialAccessPresentation

type ClientInitialAccessPresentation struct {
	Count          *int32  `json:"count,omitempty"`
	Expiration     *int32  `json:"expiration,omitempty"`
	Id             *string `json:"id,omitempty"`
	RemainingCount *int32  `json:"remainingCount,omitempty"`
	Timestamp      *int32  `json:"timestamp,omitempty"`
	Token          *string `json:"token,omitempty"`
}

type ClientMappingsRepresentation

type ClientMappingsRepresentation struct {
	Client   *string               `json:"client,omitempty"`
	Id       *string               `json:"id,omitempty"`
	Mappings *[]RoleRepresentation `json:"mappings,omitempty"`
}

type ClientRepresentation

type ClientRepresentation struct {
	Access                       *map[string]interface{}         `json:"access,omitempty"`
	AdminUrl                     *string                         `json:"adminUrl,omitempty"`
	Attributes                   *map[string]interface{}         `json:"attributes,omitempty"`
	AuthorizationServicesEnabled *bool                           `json:"authorizationServicesEnabled,omitempty"`
	AuthorizationSettings        *ResourceServerRepresentation   `json:"authorizationSettings,omitempty"`
	BaseUrl                      *string                         `json:"baseUrl,omitempty"`
	BearerOnly                   *bool                           `json:"bearerOnly,omitempty"`
	ClientAuthenticatorType      *string                         `json:"clientAuthenticatorType,omitempty"`
	ClientId                     *string                         `json:"clientId,omitempty"`
	ClientTemplate               *string                         `json:"clientTemplate,omitempty"`
	ConsentRequired              *bool                           `json:"consentRequired,omitempty"`
	DefaultRoles                 *[]string                       `json:"defaultRoles,omitempty"`
	Description                  *string                         `json:"description,omitempty"`
	DirectAccessGrantsEnabled    *bool                           `json:"directAccessGrantsEnabled,omitempty"`
	Enabled                      *bool                           `json:"enabled,omitempty"`
	FrontchannelLogout           *bool                           `json:"frontchannelLogout,omitempty"`
	FullScopeAllowed             *bool                           `json:"fullScopeAllowed,omitempty"`
	Id                           *string                         `json:"id,omitempty"`
	ImplicitFlowEnabled          *bool                           `json:"implicitFlowEnabled,omitempty"`
	Name                         *string                         `json:"name,omitempty"`
	NodeReRegistrationTimeout    *int32                          `json:"nodeReRegistrationTimeout,omitempty"`
	NotBefore                    *int32                          `json:"notBefore,omitempty"`
	Protocol                     *string                         `json:"protocol,omitempty"`
	ProtocolMappers              *[]ProtocolMapperRepresentation `json:"protocolMappers,omitempty"`
	PublicClient                 *bool                           `json:"publicClient,omitempty"`
	RedirectUris                 *[]string                       `json:"redirectUris,omitempty"`
	RegisteredNodes              *map[string]interface{}         `json:"registeredNodes,omitempty"`
	RegistrationAccessToken      *string                         `json:"registrationAccessToken,omitempty"`
	RootUrl                      *string                         `json:"rootUrl,omitempty"`
	Secret                       *string                         `json:"secret,omitempty"`
	ServiceAccountsEnabled       *bool                           `json:"serviceAccountsEnabled,omitempty"`
	StandardFlowEnabled          *bool                           `json:"standardFlowEnabled,omitempty"`
	SurrogateAuthRequired        *bool                           `json:"surrogateAuthRequired,omitempty"`
	UseTemplateConfig            *bool                           `json:"useTemplateConfig,omitempty"`
	UseTemplateMappers           *bool                           `json:"useTemplateMappers,omitempty"`
	UseTemplateScope             *bool                           `json:"useTemplateScope,omitempty"`
	WebOrigins                   *[]string                       `json:"webOrigins,omitempty"`
}

type ClientTemplateRepresentation

type ClientTemplateRepresentation struct {
	Attributes                *map[string]interface{}         `json:"attributes,omitempty"`
	BearerOnly                *bool                           `json:"bearerOnly,omitempty"`
	ConsentRequired           *bool                           `json:"consentRequired,omitempty"`
	Description               *string                         `json:"description,omitempty"`
	DirectAccessGrantsEnabled *bool                           `json:"directAccessGrantsEnabled,omitempty"`
	FrontchannelLogout        *bool                           `json:"frontchannelLogout,omitempty"`
	FullScopeAllowed          *bool                           `json:"fullScopeAllowed,omitempty"`
	Id                        *string                         `json:"id,omitempty"`
	ImplicitFlowEnabled       *bool                           `json:"implicitFlowEnabled,omitempty"`
	Name                      *string                         `json:"name,omitempty"`
	Protocol                  *string                         `json:"protocol,omitempty"`
	ProtocolMappers           *[]ProtocolMapperRepresentation `json:"protocolMappers,omitempty"`
	PublicClient              *bool                           `json:"publicClient,omitempty"`
	ServiceAccountsEnabled    *bool                           `json:"serviceAccountsEnabled,omitempty"`
	StandardFlowEnabled       *bool                           `json:"standardFlowEnabled,omitempty"`
}

type ComponentExportRepresentation

type ComponentExportRepresentation struct {
	Config        *MultivaluedHashMap `json:"config,omitempty"`
	Id            *string             `json:"id,omitempty"`
	Name          *string             `json:"name,omitempty"`
	ProviderId    *string             `json:"providerId,omitempty"`
	SubComponents *MultivaluedHashMap `json:"subComponents,omitempty"`
	SubType       *string             `json:"subType,omitempty"`
}

type ComponentRepresentation

type ComponentRepresentation struct {
	Config       *MultivaluedHashMap `json:"config,omitempty"`
	Id           *string             `json:"id,omitempty"`
	Name         *string             `json:"name,omitempty"`
	ParentId     *string             `json:"parentId,omitempty"`
	ProviderId   *string             `json:"providerId,omitempty"`
	ProviderType *string             `json:"providerType,omitempty"`
	SubType      *string             `json:"subType,omitempty"`
}

type ComponentTypeRepresentation

type ComponentTypeRepresentation struct {
	HelpText   *string                         `json:"helpText,omitempty"`
	Id         *string                         `json:"id,omitempty"`
	Metadata   *map[string]interface{}         `json:"metadata,omitempty"`
	Properties *[]ConfigPropertyRepresentation `json:"properties,omitempty"`
}

type Config

type Config struct {
	AddrTokenProvider string
	AddrAPI           string
	Timeout           time.Duration
	CacheTTL          time.Duration
	ErrorTolerance    time.Duration
}

Config is the keycloak client http config.

type ConfigPropertyRepresentation

type ConfigPropertyRepresentation struct {
	DefaultValue *map[string]interface{} `json:"defaultValue,omitempty"`
	HelpText     *string                 `json:"helpText,omitempty"`
	Label        *string                 `json:"label,omitempty"`
	Name         *string                 `json:"name,omitempty"`
	Options      *[]string               `json:"options,omitempty"`
	Secret       *bool                   `json:"secret,omitempty"`
	Type         *string                 `json:"type,omitempty"`
}

type CredentialRepresentation

type CredentialRepresentation struct {
	Id             *string `json:"id,omitempty"`
	Type           *string `json:"type,omitempty"`
	UserLabel      *string `json:"userLabel,omitempty"`
	CreatedDate    *int64  `json:"createdDate,omitempty"`
	CredentialData *string `json:"credentialData,omitempty"`
	Value          *string `json:"value,omitempty"`
	Temporary      *bool   `json:"temporary,omitempty"`
}

type EventRepresentation

type EventRepresentation struct {
	ClientId  *string                 `json:"clientId,omitempty"`
	Details   *map[string]interface{} `json:"details,omitempty"`
	Error     *string                 `json:"error,omitempty"`
	IpAddress *string                 `json:"ipAddress,omitempty"`
	RealmId   *string                 `json:"realmId,omitempty"`
	SessionId *string                 `json:"sessionId,omitempty"`
	Time      *int64                  `json:"time,omitempty"`
	Type      *string                 `json:"type,omitempty"`
	UserId    *string                 `json:"userId,omitempty"`
}

type FederatedIdentityRepresentation

type FederatedIdentityRepresentation struct {
	IdentityProvider *string `json:"identityProvider,omitempty"`
	UserId           *string `json:"userId,omitempty"`
	UserName         *string `json:"userName,omitempty"`
}

type GlobalRequestResult

type GlobalRequestResult struct {
	FailedRequests  *[]string `json:"failedRequests,omitempty"`
	SuccessRequests *[]string `json:"successRequests,omitempty"`
}

type GroupRepresentation

type GroupRepresentation struct {
	Access      *map[string]interface{} `json:"access,omitempty"`
	Attributes  *map[string]interface{} `json:"attributes,omitempty"`
	ClientRoles *map[string]interface{} `json:"clientRoles,omitempty"`
	Id          *string                 `json:"id,omitempty"`
	Name        *string                 `json:"name,omitempty"`
	Path        *string                 `json:"path,omitempty"`
	RealmRoles  *[]string               `json:"realmRoles,omitempty"`
	SubGroups   *[]GroupRepresentation  `json:"subGroups,omitempty"`
}

type HTTPError

type HTTPError struct {
	HTTPStatus int
	Message    string
}

HTTPError is returned when an error occured while contacting the keycloak instance.

func (HTTPError) Error

func (e HTTPError) Error() string

type IdentityProviderMapperRepresentation

type IdentityProviderMapperRepresentation struct {
	Config                 *map[string]interface{} `json:"config,omitempty"`
	Id                     *string                 `json:"id,omitempty"`
	IdentityProviderAlias  *string                 `json:"identityProviderAlias,omitempty"`
	IdentityProviderMapper *string                 `json:"identityProviderMapper,omitempty"`
	Name                   *string                 `json:"name,omitempty"`
}

type IdentityProviderRepresentation

type IdentityProviderRepresentation struct {
	AddReadTokenRoleOnCreate  *bool                   `json:"addReadTokenRoleOnCreate,omitempty"`
	Alias                     *string                 `json:"alias,omitempty"`
	Config                    *map[string]interface{} `json:"config,omitempty"`
	DisplayName               *string                 `json:"displayName,omitempty"`
	Enabled                   *bool                   `json:"enabled,omitempty"`
	FirstBrokerLoginFlowAlias *string                 `json:"firstBrokerLoginFlowAlias,omitempty"`
	InternalId                *string                 `json:"internalId,omitempty"`
	LinkOnly                  *bool                   `json:"linkOnly,omitempty"`
	PostBrokerLoginFlowAlias  *string                 `json:"postBrokerLoginFlowAlias,omitempty"`
	ProviderId                *string                 `json:"providerId,omitempty"`
	StoreToken                *bool                   `json:"storeToken,omitempty"`
	TrustEmail                *bool                   `json:"trustEmail,omitempty"`
}

type IssuerManager added in v1.1.1

type IssuerManager interface {
	GetIssuer(ctx context.Context) (OidcVerifierProvider, error)
}

IssuerManager provides URL according to a given context

func NewIssuerManager added in v1.1.1

func NewIssuerManager(config Config) (IssuerManager, error)

NewIssuerManager creates a new URLProvider

type KeyStoreConfig

type KeyStoreConfig struct {
	Format           *string `json:"format,omitempty"`
	KeyAlias         *string `json:"keyAlias,omitempty"`
	KeyPassword      *string `json:"keyPassword,omitempty"`
	RealmAlias       *string `json:"realmAlias,omitempty"`
	RealmCertificate *bool   `json:"realmCertificate,omitempty"`
	StorePassword    *string `json:"storePassword,omitempty"`
}

type KeysMetadataRepresentation

type KeysMetadataRepresentation struct {
	Active *map[string]interface{}                                `json:"active,omitempty"`
	Keys   *[]KeysMetadataRepresentationKeyMetadataRepresentation `json:"keys,omitempty"`
}

type KeysMetadataRepresentationKeyMetadataRepresentation

type KeysMetadataRepresentationKeyMetadataRepresentation struct {
	Certificate      *string `json:"certificate,omitempty"`
	Kid              *string `json:"kid,omitempty"`
	ProviderId       *string `json:"providerId,omitempty"`
	ProviderPriority *int64  `json:"providerPriority,omitempty"`
	PublicKey        *string `json:"publicKey,omitempty"`
	Status           *string `json:"status,omitempty"`
	Type             *string `json:"type,omitempty"`
}

type ManagementPermissionReference

type ManagementPermissionReference struct {
	Enabled          *bool                   `json:"enabled,omitempty"`
	Resource         *string                 `json:"resource,omitempty"`
	ScopePermissions *map[string]interface{} `json:"scopePermissions,omitempty"`
}

type MappingsRepresentation

type MappingsRepresentation struct {
	ClientMappings *map[string]interface{} `json:"clientMappings,omitempty"`
	RealmMappings  *[]RoleRepresentation   `json:"realmMappings,omitempty"`
}

type MemoryInfoRepresentation

type MemoryInfoRepresentation struct {
	Free           *int64  `json:"free,omitempty"`
	FreeFormated   *string `json:"freeFormated,omitempty"`
	FreePercentage *int64  `json:"freePercentage,omitempty"`
	Total          *int64  `json:"total,omitempty"`
	TotalFormated  *string `json:"totalFormated,omitempty"`
	Used           *int64  `json:"used,omitempty"`
	UsedFormated   *string `json:"usedFormated,omitempty"`
}

type MultivaluedHashMap

type MultivaluedHashMap struct {
	Empty      *bool  `json:"empty,omitempty"`
	LoadFactor *int32 `json:"loadFactor,omitempty"`
	Threshold  *int32 `json:"threshold,omitempty"`
}

type OidcTokenProvider added in v1.2.3

type OidcTokenProvider interface {
	ProvideToken(ctx context.Context) (string, error)
}

OidcTokenProvider provides OIDC tokens

func NewOidcTokenProvider added in v1.2.3

func NewOidcTokenProvider(config Config, realm, username, password, clientID string, logger log.Logger) OidcTokenProvider

NewOidcTokenProvider creates an OidcTokenProvider

type OidcVerifier

type OidcVerifier interface {
	Verify(accessToken string) error
}

OidcVerifier is an interface for OIDC token verifiers

type OidcVerifierProvider

type OidcVerifierProvider interface {
	GetOidcVerifier(realm string) (OidcVerifier, error)
}

OidcVerifierProvider is an interface for a provider of OidcVerifier instances

func NewVerifierCache

func NewVerifierCache(tokenURL *url.URL, timeToLive time.Duration, errorTolerance time.Duration) OidcVerifierProvider

NewVerifierCache create an instance of OIDC verifier cache

type PartialImportRepresentation

type PartialImportRepresentation struct {
	Clients           *[]ClientRepresentation           `json:"clients,omitempty"`
	Groups            *[]GroupRepresentation            `json:"groups,omitempty"`
	IdentityProviders *[]IdentityProviderRepresentation `json:"identityProviders,omitempty"`
	IfResourceExists  *string                           `json:"ifResourceExists,omitempty"`
	Policy            *string                           `json:"policy,omitempty"`
	Roles             *RolesRepresentation              `json:"roles,omitempty"`
	Users             *[]UserRepresentation             `json:"users,omitempty"`
}

type PasswordPolicyTypeRepresentation

type PasswordPolicyTypeRepresentation struct {
	ConfigType        *string `json:"configType,omitempty"`
	DefaultValue      *string `json:"defaultValue,omitempty"`
	DisplayName       *string `json:"displayName,omitempty"`
	Id                *string `json:"id,omitempty"`
	MultipleSupported *bool   `json:"multipleSupported,omitempty"`
}

type PolicyRepresentation

type PolicyRepresentation struct {
	Config           *map[string]interface{} `json:"config,omitempty"`
	DecisionStrategy *string                 `json:"decisionStrategy,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Id               *string                 `json:"id,omitempty"`
	Logic            *string                 `json:"logic,omitempty"`
	Name             *string                 `json:"name,omitempty"`
	Policies         *[]string               `json:"policies,omitempty"`
	Resources        *[]string               `json:"resources,omitempty"`
	Scopes           *[]string               `json:"scopes,omitempty"`
	Type             *string                 `json:"type,omitempty"`
}

type ProfileInfoRepresentation

type ProfileInfoRepresentation struct {
	DisabledFeatures *[]string `json:"disabledFeatures,omitempty"`
	Name             *string   `json:"name,omitempty"`
}

type ProtocolMapperRepresentation

type ProtocolMapperRepresentation struct {
	Config          *map[string]interface{} `json:"config,omitempty"`
	ConsentRequired *bool                   `json:"consentRequired,omitempty"`
	ConsentText     *string                 `json:"consentText,omitempty"`
	Id              *string                 `json:"id,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Protocol        *string                 `json:"protocol,omitempty"`
	ProtocolMapper  *string                 `json:"protocolMapper,omitempty"`
}

type ProviderRepresentation

type ProviderRepresentation struct {
	OperationalInfo *map[string]interface{} `json:"operationalInfo,omitempty"`
	Order           *int32                  `json:"order,omitempty"`
}

type RealmEventsConfigRepresentation

type RealmEventsConfigRepresentation struct {
	AdminEventsDetailsEnabled *bool     `json:"adminEventsDetailsEnabled,omitempty"`
	AdminEventsEnabled        *bool     `json:"adminEventsEnabled,omitempty"`
	EnabledEventTypes         *[]string `json:"enabledEventTypes,omitempty"`
	EventsEnabled             *bool     `json:"eventsEnabled,omitempty"`
	EventsExpiration          *int64    `json:"eventsExpiration,omitempty"`
	EventsListeners           *[]string `json:"eventsListeners,omitempty"`
}

type RealmRepresentation

type RealmRepresentation struct {
	AccessCodeLifespan                  *int32                                  `json:"accessCodeLifespan,omitempty"`
	AccessCodeLifespanLogin             *int32                                  `json:"accessCodeLifespanLogin,omitempty"`
	AccessCodeLifespanUserAction        *int32                                  `json:"accessCodeLifespanUserAction,omitempty"`
	AccessTokenLifespan                 *int32                                  `json:"accessTokenLifespan,omitempty"`
	AccessTokenLifespanForImplicitFlow  *int32                                  `json:"accessTokenLifespanForImplicitFlow,omitempty"`
	AccountTheme                        *string                                 `json:"accountTheme,omitempty"`
	ActionTokenGeneratedByAdminLifespan *int32                                  `json:"actionTokenGeneratedByAdminLifespan,omitempty"`
	ActionTokenGeneratedByUserLifespan  *int32                                  `json:"actionTokenGeneratedByUserLifespan,omitempty"`
	AdminEventsDetailsEnabled           *bool                                   `json:"adminEventsDetailsEnabled,omitempty"`
	AdminEventsEnabled                  *bool                                   `json:"adminEventsEnabled,omitempty"`
	AdminTheme                          *string                                 `json:"adminTheme,omitempty"`
	Attributes                          *map[string]interface{}                 `json:"attributes,omitempty"`
	AuthenticationFlows                 *[]AuthenticationFlowRepresentation     `json:"authenticationFlows,omitempty"`
	AuthenticatorConfig                 *[]AuthenticatorConfigRepresentation    `json:"authenticatorConfig,omitempty"`
	BrowserFlow                         *string                                 `json:"browserFlow,omitempty"`
	BrowserSecurityHeaders              *map[string]interface{}                 `json:"browserSecurityHeaders,omitempty"`
	BruteForceProtected                 *bool                                   `json:"bruteForceProtected,omitempty"`
	ClientAuthenticationFlow            *string                                 `json:"clientAuthenticationFlow,omitempty"`
	ClientScopeMappings                 *map[string]interface{}                 `json:"clientScopeMappings,omitempty"`
	ClientTemplates                     *[]ClientTemplateRepresentation         `json:"clientTemplates,omitempty"`
	Clients                             *[]ClientRepresentation                 `json:"clients,omitempty"`
	Components                          *MultivaluedHashMap                     `json:"components,omitempty"`
	DefaultGroups                       *[]string                               `json:"defaultGroups,omitempty"`
	DefaultLocale                       *string                                 `json:"defaultLocale,omitempty"`
	DefaultRoles                        *[]string                               `json:"defaultRoles,omitempty"`
	DirectGrantFlow                     *string                                 `json:"directGrantFlow,omitempty"`
	DisplayName                         *string                                 `json:"displayName,omitempty"`
	DisplayNameHtml                     *string                                 `json:"displayNameHtml,omitempty"`
	DockerAuthenticationFlow            *string                                 `json:"dockerAuthenticationFlow,omitempty"`
	DuplicateEmailsAllowed              *bool                                   `json:"duplicateEmailsAllowed,omitempty"`
	EditUsernameAllowed                 *bool                                   `json:"editUsernameAllowed,omitempty"`
	EmailTheme                          *string                                 `json:"emailTheme,omitempty"`
	Enabled                             *bool                                   `json:"enabled,omitempty"`
	EnabledEventTypes                   *[]string                               `json:"enabledEventTypes,omitempty"`
	EventsEnabled                       *bool                                   `json:"eventsEnabled,omitempty"`
	EventsExpiration                    *int64                                  `json:"eventsExpiration,omitempty"`
	EventsListeners                     *[]string                               `json:"eventsListeners,omitempty"`
	FailureFactor                       *int32                                  `json:"failureFactor,omitempty"`
	FederatedUsers                      *[]UserRepresentation                   `json:"federatedUsers,omitempty"`
	Groups                              *[]GroupRepresentation                  `json:"groups,omitempty"`
	Id                                  *string                                 `json:"id,omitempty"`
	IdentityProviderMappers             *[]IdentityProviderMapperRepresentation `json:"identityProviderMappers,omitempty"`
	IdentityProviders                   *[]IdentityProviderRepresentation       `json:"identityProviders,omitempty"`
	InternationalizationEnabled         *bool                                   `json:"internationalizationEnabled,omitempty"`
	KeycloakVersion                     *string                                 `json:"keycloakVersion,omitempty"`
	LoginTheme                          *string                                 `json:"loginTheme,omitempty"`
	LoginWithEmailAllowed               *bool                                   `json:"loginWithEmailAllowed,omitempty"`
	MaxDeltaTimeSeconds                 *int32                                  `json:"maxDeltaTimeSeconds,omitempty"`
	MaxFailureWaitSeconds               *int32                                  `json:"maxFailureWaitSeconds,omitempty"`
	MinimumQuickLoginWaitSeconds        *int32                                  `json:"minimumQuickLoginWaitSeconds,omitempty"`
	NotBefore                           *int32                                  `json:"notBefore,omitempty"`
	OfflineSessionIdleTimeout           *int32                                  `json:"offlineSessionIdleTimeout,omitempty"`
	OtpPolicyAlgorithm                  *string                                 `json:"otpPolicyAlgorithm,omitempty"`
	OtpPolicyDigits                     *int32                                  `json:"otpPolicyDigits,omitempty"`
	OtpPolicyInitialCounter             *int32                                  `json:"otpPolicyInitialCounter,omitempty"`
	OtpPolicyLookAheadWindow            *int32                                  `json:"otpPolicyLookAheadWindow,omitempty"`
	OtpPolicyPeriod                     *int32                                  `json:"otpPolicyPeriod,omitempty"`
	OtpPolicyType                       *string                                 `json:"otpPolicyType,omitempty"`
	OtpSupportedApplications            *[]string                               `json:"otpSupportedApplications,omitempty"`
	PasswordPolicy                      *string                                 `json:"passwordPolicy,omitempty"`
	PermanentLockout                    *bool                                   `json:"permanentLockout,omitempty"`
	ProtocolMappers                     *[]ProtocolMapperRepresentation         `json:"protocolMappers,omitempty"`
	QuickLoginCheckMilliSeconds         *int64                                  `json:"quickLoginCheckMilliSeconds,omitempty"`
	Realm                               *string                                 `json:"realm,omitempty"`
	RefreshTokenMaxReuse                *int32                                  `json:"refreshTokenMaxReuse,omitempty"`
	RegistrationAllowed                 *bool                                   `json:"registrationAllowed,omitempty"`
	RegistrationEmailAsUsername         *bool                                   `json:"registrationEmailAsUsername,omitempty"`
	RegistrationFlow                    *string                                 `json:"registrationFlow,omitempty"`
	RememberMe                          *bool                                   `json:"rememberMe,omitempty"`
	RequiredActions                     *[]RequiredActionProviderRepresentation `json:"requiredActions,omitempty"`
	ResetCredentialsFlow                *string                                 `json:"resetCredentialsFlow,omitempty"`
	ResetPasswordAllowed                *bool                                   `json:"resetPasswordAllowed,omitempty"`
	RevokeRefreshToken                  *bool                                   `json:"revokeRefreshToken,omitempty"`
	Roles                               *RolesRepresentation                    `json:"roles,omitempty"`
	ScopeMappings                       *[]ScopeMappingRepresentation           `json:"scopeMappings,omitempty"`
	SmtpServer                          *map[string]interface{}                 `json:"smtpServer,omitempty"`
	SslRequired                         *string                                 `json:"sslRequired,omitempty"`
	SsoSessionIdleTimeout               *int32                                  `json:"ssoSessionIdleTimeout,omitempty"`
	SsoSessionMaxLifespan               *int32                                  `json:"ssoSessionMaxLifespan,omitempty"`
	SupportedLocales                    *[]string                               `json:"supportedLocales,omitempty"`
	UserFederationMappers               *[]UserFederationMapperRepresentation   `json:"userFederationMappers,omitempty"`
	UserFederationProviders             *[]UserFederationProviderRepresentation `json:"userFederationProviders,omitempty"`
	Users                               *[]UserRepresentation                   `json:"users,omitempty"`
	VerifyEmail                         *bool                                   `json:"verifyEmail,omitempty"`
	WaitIncrementSeconds                *int32                                  `json:"waitIncrementSeconds,omitempty"`
}

type RecoveryCodeRepresentation added in v1.2.2

type RecoveryCodeRepresentation struct {
	Code *string `json:"code,omitempty"`
}

type RequiredActionProviderRepresentation

type RequiredActionProviderRepresentation struct {
	Alias         *string                 `json:"alias,omitempty"`
	Config        *map[string]interface{} `json:"config,omitempty"`
	DefaultAction *bool                   `json:"defaultAction,omitempty"`
	Enabled       *bool                   `json:"enabled,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	ProviderId    *string                 `json:"providerId,omitempty"`
}

type ResourceOwnerRepresentation

type ResourceOwnerRepresentation struct {
	Id   *string `json:"id,omitempty"`
	Name *string `json:"name,omitempty"`
}

type ResourceRepresentation

type ResourceRepresentation struct {
	Id          *string                      `json:"id,omitempty"`
	Icon_uri    *string                      `json:"icon_uri,omitempty"`
	Name        *string                      `json:"name,omitempty"`
	Owner       *ResourceOwnerRepresentation `json:"owner,omitempty"`
	Policies    *[]PolicyRepresentation      `json:"policies,omitempty"`
	Scopes      *[]ScopeRepresentation       `json:"scopes,omitempty"`
	Type        *string                      `json:"type,omitempty"`
	TypedScopes *[]ScopeRepresentation       `json:"typedScopes,omitempty"`
	Uri         *string                      `json:"uri,omitempty"`
}

type ResourceServerRepresentation

type ResourceServerRepresentation struct {
	AllowRemoteResourceManagement *bool                     `json:"allowRemoteResourceManagement,omitempty"`
	ClientId                      *string                   `json:"clientId,omitempty"`
	Id                            *string                   `json:"id,omitempty"`
	Name                          *string                   `json:"name,omitempty"`
	Policies                      *[]PolicyRepresentation   `json:"policies,omitempty"`
	PolicyEnforcementMode         *string                   `json:"policyEnforcementMode,omitempty"`
	Resources                     *[]ResourceRepresentation `json:"resources,omitempty"`
	Scopes                        *[]ScopeRepresentation    `json:"scopes,omitempty"`
}

type RoleRepresentation

type RoleRepresentation struct {
	ClientRole         *bool                         `json:"clientRole,omitempty"`
	Composite          *bool                         `json:"composite,omitempty"`
	Composites         *RoleRepresentationComposites `json:"composites,omitempty"`
	ContainerId        *string                       `json:"containerId,omitempty"`
	Description        *string                       `json:"description,omitempty"`
	Id                 *string                       `json:"id,omitempty"`
	Name               *string                       `json:"name,omitempty"`
	ScopeParamRequired *bool                         `json:"scopeParamRequired,omitempty"`
}

type RoleRepresentationComposites

type RoleRepresentationComposites struct {
	Client *map[string]interface{} `json:"client,omitempty"`
	Realm  *[]string               `json:"realm,omitempty"`
}

type RolesRepresentation

type RolesRepresentation struct {
	Client *map[string]interface{} `json:"client,omitempty"`
	Realm  *[]RoleRepresentation   `json:"realm,omitempty"`
}

type ScopeMappingRepresentation

type ScopeMappingRepresentation struct {
	Client         *string   `json:"client,omitempty"`
	ClientTemplate *string   `json:"clientTemplate,omitempty"`
	Roles          *[]string `json:"roles,omitempty"`
	Self           *string   `json:"self,omitempty"`
}

type ScopeRepresentation

type ScopeRepresentation struct {
	IconUri   *string                   `json:"iconUri,omitempty"`
	Id        *string                   `json:"id,omitempty"`
	Name      *string                   `json:"name,omitempty"`
	Policies  *[]PolicyRepresentation   `json:"policies,omitempty"`
	Resources *[]ResourceRepresentation `json:"resources,omitempty"`
}

type ServerInfoRepresentation

type ServerInfoRepresentation struct {
	BuiltinProtocolMappers *map[string]interface{}             `json:"builtinProtocolMappers,omitempty"`
	ClientImporters        *[]map[string]interface{}           `json:"clientImporters,omitempty"`
	ClientInstallations    *map[string]interface{}             `json:"clientInstallations,omitempty"`
	ComponentTypes         *map[string]interface{}             `json:"componentTypes,omitempty"`
	Enums                  *map[string]interface{}             `json:"enums,omitempty"`
	IdentityProviders      *[]map[string]interface{}           `json:"identityProviders,omitempty"`
	MemoryInfo             *MemoryInfoRepresentation           `json:"memoryInfo,omitempty"`
	PasswordPolicies       *[]PasswordPolicyTypeRepresentation `json:"passwordPolicies,omitempty"`
	ProfileInfo            *ProfileInfoRepresentation          `json:"profileInfo,omitempty"`
	ProtocolMapperTypes    *map[string]interface{}             `json:"protocolMapperTypes,omitempty"`
	Providers              *map[string]interface{}             `json:"providers,omitempty"`
	SocialProviders        *[]map[string]interface{}           `json:"socialProviders,omitempty"`
	SystemInfo             *SystemInfoRepresentation           `json:"systemInfo,omitempty"`
	Themes                 *map[string]interface{}             `json:"themes,omitempty"`
}

type SmsCodeRepresentation

type SmsCodeRepresentation struct {
	Code *string `json:"code,omitempty"`
}

type SpiInfoRepresentation

type SpiInfoRepresentation struct {
	Internal  *bool                   `json:"internal,omitempty"`
	Providers *map[string]interface{} `json:"providers,omitempty"`
}

type StatisticsUsersRepresentation added in v1.1.2

type StatisticsUsersRepresentation struct {
	Total    int64 `json:"total,omitempty"`
	Disabled int64 `json:"disabled,omitempty"`
	Inactive int64 `json:"inactive,omitempty"`
}

StatisticsUsersRepresentation elements returned by GetStatisticsUsers

type SynchronizationResult

type SynchronizationResult struct {
	Added   *int32  `json:"added,omitempty"`
	Failed  *int32  `json:"failed,omitempty"`
	Ignored *bool   `json:"ignored,omitempty"`
	Removed *int32  `json:"removed,omitempty"`
	Status  *string `json:"status,omitempty"`
	Updated *int32  `json:"updated,omitempty"`
}

type SystemInfoRepresentation

type SystemInfoRepresentation struct {
	FileEncoding   *string `json:"fileEncoding,omitempty"`
	JavaHome       *string `json:"javaHome,omitempty"`
	JavaRuntime    *string `json:"javaRuntime,omitempty"`
	JavaVendor     *string `json:"javaVendor,omitempty"`
	JavaVersion    *string `json:"javaVersion,omitempty"`
	JavaVm         *string `json:"javaVm,omitempty"`
	JavaVmVersion  *string `json:"javaVmVersion,omitempty"`
	OsArchitecture *string `json:"osArchitecture,omitempty"`
	OsName         *string `json:"osName,omitempty"`
	OsVersion      *string `json:"osVersion,omitempty"`
	ServerTime     *string `json:"serverTime,omitempty"`
	Uptime         *string `json:"uptime,omitempty"`
	UptimeMillis   *int64  `json:"uptimeMillis,omitempty"`
	UserDir        *string `json:"userDir,omitempty"`
	UserLocale     *string `json:"userLocale,omitempty"`
	UserName       *string `json:"userName,omitempty"`
	UserTimezone   *string `json:"userTimezone,omitempty"`
	Version        *string `json:"version,omitempty"`
}

type Token

type Token struct {
	Issuer         string `json:"iss,omitempty"`
	Subject        string `json:"sub,omitempty"`
	ExpirationTime int64  `json:"exp,omitempty"`
	NotBefore      int64  `json:"nbf,omitempty"`
	IssuedAt       int64  `json:"iat,omitempty"`
	ID             string `json:"jti,omitempty"`
	Username       string `json:"preferred_username,omitempty"`
	// contains filtered or unexported fields
}

Token is JWT token. We need to define our own structure as the library define aud as a string but it can also be a string array. To fix this issue, we remove aud as we do not use it here.

type UserConsentRepresentation

type UserConsentRepresentation struct {
	ClientId               *string                 `json:"clientId,omitempty"`
	CreatedDate            *int64                  `json:"createdDate,omitempty"`
	GrantedClientRoles     *map[string]interface{} `json:"grantedClientRoles,omitempty"`
	GrantedProtocolMappers *map[string]interface{} `json:"grantedProtocolMappers,omitempty"`
	GrantedRealmRoles      *[]string               `json:"grantedRealmRoles,omitempty"`
	LastUpdatedDate        *int64                  `json:"lastUpdatedDate,omitempty"`
}

type UserFederationMapperRepresentation

type UserFederationMapperRepresentation struct {
	Config                        *map[string]interface{} `json:"config,omitempty"`
	FederationMapperType          *string                 `json:"federationMapperType,omitempty"`
	FederationProviderDisplayName *string                 `json:"federationProviderDisplayName,omitempty"`
	Id                            *string                 `json:"id,omitempty"`
	Name                          *string                 `json:"name,omitempty"`
}

type UserFederationProviderRepresentation

type UserFederationProviderRepresentation struct {
	ChangedSyncPeriod *int32                  `json:"changedSyncPeriod,omitempty"`
	Config            *map[string]interface{} `json:"config,omitempty"`
	DisplayName       *string                 `json:"displayName,omitempty"`
	FullSyncPeriod    *int32                  `json:"fullSyncPeriod,omitempty"`
	Id                *string                 `json:"id,omitempty"`
	LastSync          *int32                  `json:"lastSync,omitempty"`
	Priority          *int32                  `json:"priority,omitempty"`
	ProviderName      *string                 `json:"providerName,omitempty"`
}

type UserRepresentation

type UserRepresentation struct {
	Access                     *map[string]bool                   `json:"access,omitempty"`
	Attributes                 *map[string][]string               `json:"attributes,omitempty"`
	ClientConsents             *[]UserConsentRepresentation       `json:"clientConsents,omitempty"`
	ClientRoles                *map[string][]string               `json:"clientRoles,omitempty"`
	CreatedTimestamp           *int64                             `json:"createdTimestamp,omitempty"`
	Credentials                *[]CredentialRepresentation        `json:"credentials,omitempty"`
	DisableableCredentialTypes *[]string                          `json:"disableableCredentialTypes,omitempty"`
	Email                      *string                            `json:"email,omitempty"`
	EmailVerified              *bool                              `json:"emailVerified,omitempty"`
	Enabled                    *bool                              `json:"enabled,omitempty"`
	FederatedIdentities        *[]FederatedIdentityRepresentation `json:"federatedIdentities,omitempty"`
	FederationLink             *string                            `json:"federationLink,omitempty"`
	FirstName                  *string                            `json:"firstName,omitempty"`
	Groups                     *[]string                          `json:"groups,omitempty"`
	Id                         *string                            `json:"id,omitempty"`
	LastName                   *string                            `json:"lastName,omitempty"`
	NotBefore                  *int32                             `json:"notBefore,omitempty"`
	Origin                     *string                            `json:"origin,omitempty"`
	RealmRoles                 *[]string                          `json:"realmRoles,omitempty"`
	RequiredActions            *[]string                          `json:"requiredActions,omitempty"`
	Self                       *string                            `json:"self,omitempty"`
	ServiceAccountClientId     *string                            `json:"serviceAccountClientId,omitempty"`
	Username                   *string                            `json:"username,omitempty"`
}

type UserSessionRepresentation

type UserSessionRepresentation struct {
	Clients    *map[string]interface{} `json:"clients,omitempty"`
	Id         *string                 `json:"id,omitempty"`
	IpAddress  *string                 `json:"ipAddress,omitempty"`
	LastAccess *int64                  `json:"lastAccess,omitempty"`
	Start      *int64                  `json:"start,omitempty"`
	UserId     *string                 `json:"userId,omitempty"`
	Username   *string                 `json:"username,omitempty"`
}

type UsersPageRepresentation

type UsersPageRepresentation struct {
	Count *int                 `json:"count,omitempty"`
	Users []UserRepresentation `json:"users,omitempty"`
}

UsersPageRepresentation is used to manage users paging

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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