keycloak

package module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2020 License: AGPL-3.0 Imports: 16 Imported by: 0

README

Basic keycloak client in go

This repo provides a basic keycloak client in go.

Keycloak API Version Compatibility

The keycloak client in this repo is valid for the Keycloak API @v4.8.3.Final

Documentation

Index

Constants

View Source
const (
	UserFederationProviderLDAPMapperType = "org.keycloak.storage.ldap.mappers.LDAPStorageMapper"
)
View Source
const (
	UserFederationProviderType = "org.keycloak.storage.UserStorageProvider"
)

Variables

This section is empty.

Functions

This section is empty.

Types

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) AddClientRolesToUserRoleMapping

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

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

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) (string, error)

CreateAuthenticationFlow creates a new authentication flow.

func (*Client) CreateClient added in v0.0.4

func (c *Client) CreateClient(accessToken string, realmName string, client ClientCreateRequest) (string, error)

CreateClient creates a client

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 string, 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 v0.0.9

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

CreateGroup creates a new group for the realm

func (*Client) CreateRealm

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

CreateRealm creates the realm from its RealmRepresentation.

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) CreateUserFederationProvider added in v0.0.7

func (c *Client) CreateUserFederationProvider(accessToken string, realmName string, userFederationProvider UserFederationProviderRepresentation) (string, error)

CreateUserFederationProvider creates a user federation provider for a realm for syncing users from an external source, returning the location of the created provider or error (if any).

func (*Client) CreateUserFederationProviderMapper added in v0.0.7

func (c *Client) CreateUserFederationProviderMapper(accessToken string, realmName string, userFederationProviderMapper UserFederationProviderMapperRepresentation) (string, error)

CreateUserFederationProviderMapper creates a user federation provider mapper for a realm for mapping attributes from synced users from an external source, returning the location of the created provider mapper or error (if any).

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) DeleteClient added in v0.0.6

func (c *Client) DeleteClient(accessToken string, realmName, id string) error

DeleteClient deletes specified client from the realm. id is the id of client (not client-id).

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) DeleteCredentialsForUser

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

DeleteCredentialsForUser remove credentials for a user

func (*Client) DeleteGroup added in v0.0.9

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

DeleteGroup deletes a group from the realm

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) DeleteRole added in v0.0.9

func (c *Client) DeleteRole(accessToken string, realmName string, clientID string, roleID string) error

DeleteRole deletes a role

func (*Client) DeleteUser

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

DeleteUser deletes the user.

func (*Client) DeleteUserFederationProvider added in v0.0.7

func (c *Client) DeleteUserFederationProvider(accessToken string, realmName, userFederationProviderID string) error

DeleteUserFederationProvider deletes the specified UserFederationProvider from the realm.

func (*Client) DeleteUserFederationProviderMapper added in v0.0.7

func (c *Client) DeleteUserFederationProviderMapper(accessToken string, realmName, userFederationProviderMapperID string) error

DeleteUserFederationProviderMapper deletes the specified UserFederationProviderMapper from the realm.

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) 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) GetClientRole added in v0.0.9

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

GetClientRole gets a specific client role’s representation

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 string, clientID 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) GetCredentialsForUser

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

GetCredentialsForUser gets the credential list for a 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) 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) GetRealmLevelRoleMappings

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

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) 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) GetUserDetails added in v0.0.8

func (c *Client) GetUserDetails(accessToken string, realmName, username string) (UserDetailsRepresentation, error)

GetUserDetails gets a detailed represention of the user with resolved groups and roles.

func (*Client) GetUserFederationProvider added in v0.0.7

func (c *Client) GetUserFederationProvider(accessToken string, realmName, userFederationProviderID string) (UserFederationProviderRepresentation, error)

GetUserFederationProvider returns the representation of the specified UserFederationProvider or error (if any).

func (*Client) GetUserFederationProviderMapper added in v0.0.7

func (c *Client) GetUserFederationProviderMapper(accessToken string, realmName, userFederationProviderMapperID string) (UserFederationProviderMapperRepresentation, error)

GetUserFederationProviderMapper returns the representation of the specified UserFederationProviderMapper or error (if any).

func (*Client) GetUserFederationProviderMappers added in v0.0.7

func (c *Client) GetUserFederationProviderMappers(accessToken string, realmName string, userFederationProviderID string, mapperType string) ([]UserFederationProviderMapperRepresentation, error)

GetUserFederationProviderMappers returns a list of UserFederationProviderMappers belonging to the realm or error (if any).

func (*Client) GetUserFederationProviders added in v0.0.7

func (c *Client) GetUserFederationProviders(accessToken string, realmName string, realmId string) ([]UserFederationProviderRepresentation, error)

GetUserFederationProviders returns a list of UserFederationProviders belonging to the realm or error (if any).

func (*Client) GetUsers

func (c *Client) GetUsers(accessToken string, reqRealmName, targetRealmName string, paramKV ...string) (Users, 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) 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) 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) SendVerifyEmail

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

SendVerifyEmail sends an email-verification email to the user An email contains a link the user can click to verify their email address.

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) UpdateClient added in v0.0.2

func (c *Client) UpdateClient(accessToken string, realmName, clientID string, client ClientRepresentation) error

UpdateClient updates the client.

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) UpdateUserFederationProvider added in v0.0.7

func (c *Client) UpdateUserFederationProvider(accessToken string, realmName, userFederationProviderID string, userFederationProvider UserFederationProviderRepresentation) error

UpdateUserFederationProvider updates the UserFederationProvider.

func (*Client) UpdateUserFederationProviderMapper added in v0.0.7

func (c *Client) UpdateUserFederationProviderMapper(accessToken string, realmName, userFederationProviderMapperID string, userFederationProviderMapper UserFederationProviderMapperRepresentation) error

UpdateUserFederationProviderMapper updates the UserFederationProviderMapper.

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(realmName string, accessToken string) error

verifyToken token verify a token. It returns an error it is malformed, expired,...

type ClientCreateRequest added in v0.0.4

type ClientCreateRequest struct {
	Attributes   *map[string]interface{} `json:"attributes,omitempty"`
	ClientID     *string                 `json:"clientId,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`
	Protocol     *string                 `json:"protocol,omitempty"`
	RedirectURIs *[]string               `json:"redirectUris,omitempty"`
}

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"`
	AuthenticationFlowBindingOverrides *map[string]interface{}         `json:"authenticationFlowBindingOverrides,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
}

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"`
	Algorithm         *string              `json:"algorithm,omitempty"`
	Config            *map[string][]string `json:"config,omitempty"`
	Counter           *int32               `json:"counter,omitempty"`
	CreatedDate       *int64               `json:"createdDate,omitempty"`
	Device            *string              `json:"device,omitempty"`
	Digits            *int32               `json:"digits,omitempty"`
	HashIterations    *int32               `json:"hashIterations,omitempty"`
	HashedSaltedValue *string              `json:"hashedSaltedValue,omitempty"`
	Period            *int32               `json:"period,omitempty"`
	Salt              *string              `json:"salt,omitempty"`
	Temporary         *bool                `json:"temporary,omitempty"`
	Type              *string              `json:"type,omitempty"`
	Value             *string              `json:"value,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 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 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"`
	Users                               *[]UserRepresentation                   `json:"users,omitempty"`
	VerifyEmail                         *bool                                   `json:"verifyEmail,omitempty"`
	WaitIncrementSeconds                *int32                                  `json:"waitIncrementSeconds,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"`
	Priority      *int                    `json:"priority,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 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 UserDetailsRepresentation added in v0.0.8

type UserDetailsRepresentation struct {
	ID             *string                 `json:"id,omitempty"`
	Username       *string                 `json:"username,omitempty"`
	FirstName      *string                 `json:"firstName,omitempty"`
	LastName       *string                 `json:"lastName,omitempty"`
	Email          *string                 `json:"email,omitempty"`
	Enabled        *bool                   `json:"enabled,omitempty"`
	FederationLink *string                 `json:"federationLink,omitempty"`
	Roles          *MappingsRepresentation `json:"roles,omitempty"`
	Groups         *[]GroupRepresentation  `json:"groups,omitempty"`
	Attributes     *map[string][]string    `json:"attributes,omitempty"`
}

type UserFederationProviderMapperRepresentation added in v0.0.7

type UserFederationProviderMapperRepresentation = UserFederationProviderRepresentation

type UserFederationProviderRepresentation

type UserFederationProviderRepresentation struct {
	Id          *string `json:"id,omitempty"`
	DisplayName *string `json:"name,omitempty"`
	// The id of the resource the provider is attached to
	// will be realm id for a user federation provider or
	// provider id for a user federation provider mapper
	ParentId *string `json:"parentId,omitempty"`
	// User viewable type of the provider
	ProviderId *string `json:"providerId,omitempty"`
	// Keycloak defined type corresponding to the ProviderId
	ProviderType *string              `json:"providerType,omitempty"`
	Config       *map[string][]string `json:"config,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 Users added in v0.0.3

type Users []UserRepresentation

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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