Documentation ¶
Index ¶
- Variables
- func BoolP(value bool) *bool
- func Float32P(value float32) *float32
- func Float64P(value float64) *float64
- func GetQueryParams(s interface{}) (map[string]string, error)
- func Int32P(value int32) *int32
- func Int64P(value int64) *int64
- func IntP(value int) *int
- func NilOrEmpty(value *string) bool
- func NilOrEmptySlice(value *[]string) bool
- func PBool(value *bool) bool
- func PFloat32(value *float32) float32
- func PFloat64(value *float64) float64
- func PInt(value *int) int
- func PInt32(value *int32) int32
- func PInt64(value *int64) int64
- func PString(value *string) string
- func PStringSlice(value *[]string) []string
- func SetAuthAdminRealms(url string) func(client *gocloak)
- func SetAuthRealms(url string) func(client *gocloak)
- func SetCertCacheInvalidationTime(duration time.Duration) func(client *gocloak)
- func SetLogoutEndpoint(url string) func(client *gocloak)
- func SetOpenIDConnectEndpoint(url string) func(client *gocloak)
- func SetTokenEndpoint(url string) func(client *gocloak)
- func StringP(value string) *string
- func UserAttributeContains(attributes map[string][]string, attribute, value string) bool
- type APIError
- type Access
- type ActiveKeys
- type AggregatedPolicyRepresentation
- type Attributes
- type CertResponse
- type CertResponseKey
- type Client
- type ClientMappingsRepresentation
- type ClientPolicyRepresentation
- type ClientScope
- type ClientScopeAttributes
- type Component
- type ComponentConfig
- type CompositesRepresentation
- type CredentialRepresentation
- type DecisionStrategy
- type ExecuteActionsEmail
- type FederatedIdentityRepresentation
- type GetClientsParams
- type GetGroupsParams
- type GetPermissionParams
- type GetPolicyParams
- type GetResourceParams
- type GetScopeParams
- type GetUsersByRoleParams
- type GetUsersParams
- type GoCloak
- type Group
- type GroupDefinition
- type GroupPolicyRepresentation
- type GroupsCount
- type HTTPErrorResponse
- type IdentityProviderRepresentation
- type IssuerResponse
- type JSPolicyRepresentation
- type JWT
- type Key
- type KeyStoreConfig
- type Logic
- type MappingsRepresentation
- type MemoryInfoRepresentation
- type MultiValuedHashMap
- type PermissionRepresentation
- type PolicyEnforcementMode
- type PolicyRepresentation
- type ProtocolMapperRepresentation
- type ProtocolMappers
- type ProtocolMappersConfig
- type RealmRepresentation
- type RequestingPartyPermission
- type RequestingPartyTokenOptions
- type ResourceOwnerRepresentation
- type ResourcePermission
- type ResourceRepresentation
- type ResourceServerRepresentation
- type RetrospecTokenResult
- type Role
- type RoleDefinition
- type RolePolicyRepresentation
- type RolesRepresentation
- type ScopeRepresentation
- type ServerInfoRepesentation
- type SetPasswordRequest
- type StringOrArray
- type SystemInfoRepresentation
- type TimePolicyRepresentation
- type TokenOptions
- type User
- type UserGroup
- type UserInfo
- type UserInfoAddress
- type UserPolicyRepresentation
- type UserSessionRepresentation
Constants ¶
This section is empty.
Variables ¶
var ( POSITIVE = LogicP("POSITIVE") NEGATIVE = LogicP("NEGATIVE") )
Logic values
var ( AFFIRMATIVE = DecisionStrategyP("AFFIRMATIVE") UNANIMOUS = DecisionStrategyP("UNANIMOUS") CONSENSUS = DecisionStrategyP("CONSENSUS") )
DecisionStrategy values
Functions ¶
func GetQueryParams ¶
GetQueryParams converts the struct to map[string]string The fields tags must have `json:"<name>,string,omitempty"` format for all types, except strings The string fields must have: `json:"<name>,omitempty"`. The `json:"<name>,string,omitempty"` tag for string field will add additional double quotes. "string" tag allows to convert the non-string fields of a structure to map[string]string. "omitempty" allows to skip the fields with default values.
func NilOrEmpty ¶
NilOrEmpty returns true if string is empty or has a nil value
func NilOrEmptySlice ¶
NilOrEmptySlice returns true if list is empty or has a nil value
func PStringSlice ¶
PStringSlice converts a pointer to []string or returns ampty slice if nill value
func SetAuthAdminRealms ¶
func SetAuthAdminRealms(url string) func(client *gocloak)
SetAuthAdminRealms sets the auth admin realm
func SetAuthRealms ¶
func SetAuthRealms(url string) func(client *gocloak)
SetAuthRealms sets the auth realm
func SetCertCacheInvalidationTime ¶
SetCertCacheInvalidationTime sets the logout
func SetLogoutEndpoint ¶
func SetLogoutEndpoint(url string) func(client *gocloak)
SetLogoutEndpoint sets the logout
func SetOpenIDConnectEndpoint ¶
func SetOpenIDConnectEndpoint(url string) func(client *gocloak)
SetOpenIDConnectEndpoint sets the logout
func SetTokenEndpoint ¶
func SetTokenEndpoint(url string) func(client *gocloak)
SetTokenEndpoint sets the token endpoint
Types ¶
type Access ¶
type Access struct { ManageGroupMembership *bool `json:"manageGroupMembership,omitempty"` View *bool `json:"view,omitempty"` MapRoles *bool `json:"mapRoles,omitempty"` Impersonate *bool `json:"impersonate,omitempty"` Manage *bool `json:"manage,omitempty"` }
Access represents access
type ActiveKeys ¶
type ActiveKeys struct { HS256 *string `json:"HS256,omitempty"` RS256 *string `json:"RS256,omitempty"` AES *string `json:"AES,omitempty"` }
ActiveKeys holds the active keys
type AggregatedPolicyRepresentation ¶
type AggregatedPolicyRepresentation struct {
Policies *[]string `json:"policies,omitempty"`
}
AggregatedPolicyRepresentation represents aggregated policies
type Attributes ¶
type Attributes struct { LDAPENTRYDN *[]string `json:"LDAP_ENTRY_DN,omitempty"` LDAPID *[]string `json:"LDAP_ID,omitempty"` }
Attributes holds Attributes
type CertResponse ¶
type CertResponse struct {
Keys *[]CertResponseKey `json:"keys,omitempty"`
}
CertResponse is returned by the certs endpoint
type CertResponseKey ¶
type CertResponseKey struct { Kid *string `json:"kid,omitempty"` Kty *string `json:"kty,omitempty"` Alg *string `json:"alg,omitempty"` Use *string `json:"use,omitempty"` N *string `json:"n,omitempty"` E *string `json:"e,omitempty"` KeyOps *[]string `json:"key_ops,omitempty"` X5u *string `json:"x5u,omitempty"` X5c *[]string `json:"x5c,omitempty"` X5t *string `json:"x5t,omitempty"` X5tS256 *string `json:"x5t#S256,omitempty"` }
CertResponseKey is returned by the certs endpoint. JSON Web Key structure is described here: https://self-issued.info/docs/draft-ietf-jose-json-web-key.html#JWKContents
type Client ¶
type Client struct { Access *map[string]interface{} `json:"access,omitempty"` AdminURL *string `json:"adminUrl,omitempty"` Attributes *map[string]string `json:"attributes,omitempty"` AuthenticationFlowBindingOverrides *map[string]string `json:"authenticationFlowBindingOverrides,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"` ConsentRequired *bool `json:"consentRequired,omitempty"` DefaultClientScopes *[]string `json:"defaultClientScopes,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"` OptionalClientScopes *[]string `json:"optionalClientScopes,omitempty"` Origin *string `json:"origin,omitempty"` Protocol *string `json:"protocol,omitempty"` ProtocolMappers *[]ProtocolMapperRepresentation `json:"protocolMappers,omitempty"` PublicClient *bool `json:"publicClient,omitempty"` RedirectURIs *[]string `json:"redirectUris,omitempty"` RegisteredNodes *map[string]string `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"` WebOrigins *[]string `json:"webOrigins,omitempty"` }
Client is a ClientRepresentation
type ClientMappingsRepresentation ¶
type ClientMappingsRepresentation struct { ID *string `json:"id,omitempty"` Client *string `json:"client,omitempty"` Mappings *[]Role `json:"mappings,omitempty"` }
ClientMappingsRepresentation is a client role mappings
type ClientPolicyRepresentation ¶
type ClientPolicyRepresentation struct {
Clients *[]string `json:"clients,omitempty"`
}
ClientPolicyRepresentation represents client based policies
type ClientScope ¶
type ClientScope struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` Protocol *string `json:"protocol,omitempty"` ClientScopeAttributes *ClientScopeAttributes `json:"attributes,omitempty"` ProtocolMappers *[]ProtocolMappers `json:"protocolMappers,omitempty"` }
ClientScope is a ClientScope
type ClientScopeAttributes ¶
type ClientScopeAttributes struct { ConsentScreenText *string `json:"consent.screen.text,omitempty"` DisplayOnConsentScreen *string `json:"display.on.consent.screen,omitempty"` IncludeInTokenScope *string `json:"include.in.token.scope,omitempty"` }
ClientScopeAttributes are attributes of client scopes
type Component ¶
type Component struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` ProviderID *string `json:"providerId,omitempty"` ProviderType *string `json:"providerType,omitempty"` ParentID *string `json:"parentId,omitempty"` ComponentConfig *ComponentConfig `json:"config,omitempty"` SubType *string `json:"subType,omitempty"` }
Component is a component
type ComponentConfig ¶
type ComponentConfig struct { Priority *[]string `json:"priority,omitempty"` Algorithm *[]string `json:"algorithm,omitempty"` }
ComponentConfig is a componentconfig
type CompositesRepresentation ¶
type CompositesRepresentation struct { Client *map[string][]string `json:"client,omitempty"` Realm *[]string `json:"realm,omitempty"` }
CompositesRepresentation represents the composite roles of a role
type CredentialRepresentation ¶
type CredentialRepresentation struct { // Common part CreatedDate *int64 `json:"createdDate,omitempty"` Temporary *bool `json:"temporary,omitempty"` Type *string `json:"type,omitempty"` Value *string `json:"value,omitempty"` // <= v7 Algorithm *string `json:"algorithm,omitempty"` Config *MultiValuedHashMap `json:"config,omitempty"` Counter *int32 `json:"counter,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"` // >= v8 CredentialData *string `json:"credentialData,omitempty"` ID *string `json:"id,omitempty"` Priority *int32 `json:"priority,omitempty"` SecretData *string `json:"secretData,omitempty"` UserLabel *string `json:"userLabel,omitempty"` }
CredentialRepresentation is a representations of the credentials v7: https://www.keycloak.org/docs-api/7.0/rest-api/index.html#_credentialrepresentation v8: https://www.keycloak.org/docs-api/8.0/rest-api/index.html#_credentialrepresentation
type DecisionStrategy ¶
type DecisionStrategy string
DecisionStrategy is an enum type for DecisionStrategy of PolicyRepresentation
func DecisionStrategyP ¶
func DecisionStrategyP(value DecisionStrategy) *DecisionStrategy
DecisionStrategyP returns a pointer for a DecisionStrategy value
type ExecuteActionsEmail ¶
type ExecuteActionsEmail struct { UserID *string `json:"-"` ClientID *string `json:"client_id,omitempty"` Lifespan *int `json:"lifespan,string,omitempty"` RedirectURI *string `json:"redirect_uri,omitempty"` Actions *[]string `json:"-"` }
ExecuteActionsEmail represents parameters for executing action emails
type FederatedIdentityRepresentation ¶
type FederatedIdentityRepresentation struct { IdentityProvider *string `json:"identityProvider,omitempty"` UserID *string `json:"userId,omitempty"` UserName *string `json:"userName,omitempty"` }
FederatedIdentityRepresentation represents an user federated identity
type GetClientsParams ¶
type GetClientsParams struct { ClientID *string `json:"clientId,omitempty"` ViewableOnly *bool `json:"viewableOnly,string"` }
GetClientsParams represents the query parameters
type GetGroupsParams ¶
type GetGroupsParams struct { First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` Search *string `json:"search,omitempty"` Full *bool `json:"full,string,omitempty"` BriefRepresentation *bool `json:"briefRepresentation,string,omitempty"` }
GetGroupsParams represents the optional parameters for getting groups
func (GetGroupsParams) MarshalJSON ¶
func (obj GetGroupsParams) MarshalJSON() ([]byte, error)
MarshalJSON is a custom json marshaling function to automatically set the Full and BriefRepresentation properties for backward compatibility
type GetPermissionParams ¶
type GetPermissionParams struct { First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` Name *string `json:"name,omitempty"` Resource *string `json:"resource,omitempty"` Scope *string `json:"scope,omitempty"` Type *string `json:"type,omitempty"` }
GetPermissionParams represents the optional parameters for getting permissions
type GetPolicyParams ¶
type GetPolicyParams struct { First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` Name *string `json:"name,omitempty"` Permission *bool `json:"permission,string,omitempty"` Type *string `json:"type,omitempty"` }
GetPolicyParams represents the optional parameters for getting policies TODO: more policy params?
type GetResourceParams ¶
type GetResourceParams struct { Deep *bool `json:"deep,string,omitempty"` First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` Name *string `json:"name,omitempty"` Owner *string `json:"owner,omitempty"` Type *string `json:"type,omitempty"` URI *string `json:"uri,omitempty"` Scope *string `json:"scope,omitempty"` }
GetResourceParams represents the optional parameters for getting resources
type GetScopeParams ¶
type GetScopeParams struct { Deep *bool `json:"deep,string,omitempty"` First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` Name *string `json:"name,omitempty"` }
GetScopeParams represents the optional parameters for getting scopes
type GetUsersByRoleParams ¶
type GetUsersByRoleParams struct { First *int `json:"first,string,omitempty"` Max *int `json:"max,string,omitempty"` }
GetUsersByRoleParams represents the optional parameters for getting users by role
type GetUsersParams ¶
type GetUsersParams struct { BriefRepresentation *bool `json:"briefRepresentation,string"` Email *string `json:"email,omitempty"` Enabled *bool `json:"enabled,string,omitempty"` Exact *bool `json:"exact,string,omitempty"` First *int `json:"first,string,omitempty"` FirstName *string `json:"firstName,omitempty"` LastName *string `json:"lastName,omitempty"` Max *int `json:"max,string,omitempty"` Search *string `json:"search,omitempty"` Username *string `json:"username,omitempty"` }
GetUsersParams represents the optional parameters for getting users
type GoCloak ¶
type GoCloak interface { // RestyClient returns a resty client that gocloak uses RestyClient() *resty.Client // Sets the resty Client that gocloak uses SetRestyClient(restyClient *resty.Client) // GetToken returns a token GetToken(ctx context.Context, realm string, options TokenOptions) (*JWT, error) // GetRequestingPartyToken returns a requesting party token with permissions granted by the server GetRequestingPartyToken(ctx context.Context, token, realm string, options RequestingPartyTokenOptions) (*JWT, error) // GetRequestingPartyPermissions returns a permissions granted by the server to requesting party GetRequestingPartyPermissions(ctx context.Context, token, realm string, options RequestingPartyTokenOptions) (*[]RequestingPartyPermission, error) // Login sends a request to the token endpoint using user and client credentials Login(ctx context.Context, clientID, clientSecret, realm, username, password string) (*JWT, error) // LoginOtp performs a login with user credentials and otp token LoginOtp(ctx context.Context, clientID, clientSecret, realm, username, password, totp string) (*JWT, error) // Logout sends a request to the logout endpoint using refresh token Logout(ctx context.Context, clientID, clientSecret, realm, refreshToken string) error // LogoutPublicClient sends a request to the logout endpoint using refresh token LogoutPublicClient(ctx context.Context, clientID, realm, accessToken, refreshToken string) error // LogoutAllSessions logs out all sessions of a user given an id LogoutAllSessions(ctx context.Context, accessToken, realm, userID string) error // LogoutUserSessions logs out a single sessions of a user given a session id. // NOTE: this uses bearer token, but this token must belong to a user with proper privileges LogoutUserSession(ctx context.Context, accessToken, realm, session string) error // LoginClient sends a request to the token endpoint using client credentials LoginClient(ctx context.Context, clientID, clientSecret, realm string) (*JWT, error) // LoginClientSignedJWT performs a login with client credentials and signed jwt claims LoginClientSignedJWT(ctx context.Context, clientID, realm string, key interface{}, signedMethod jwt.SigningMethod, expiresAt *jwt.Time) (*JWT, error) // LoginAdmin login as admin LoginAdmin(ctx context.Context, username, password, realm string) (*JWT, error) // RefreshToken used to refresh the token RefreshToken(ctx context.Context, refreshToken, clientID, clientSecret, realm string) (*JWT, error) // DecodeAccessToken decodes the accessToken DecodeAccessToken(ctx context.Context, accessToken, realm, expectedAudience string) (*jwt.Token, *jwt.MapClaims, error) // DecodeAccessTokenCustomClaims decodes the accessToken and fills the given claims DecodeAccessTokenCustomClaims(ctx context.Context, accessToken, realm, expectedAudience string, claims jwt.Claims) (*jwt.Token, error) // DecodeAccessTokenCustomClaims calls the token introspection endpoint RetrospectToken(ctx context.Context, accessToken, clientID, clientSecret, realm string) (*RetrospecTokenResult, error) // GetIssuer calls the issuer endpoint for the given realm GetIssuer(ctx context.Context, realm string) (*IssuerResponse, error) // GetCerts gets the public keys for the given realm GetCerts(ctx context.Context, realm string) (*CertResponse, error) // GetServerInfo returns the server info GetServerInfo(ctx context.Context, accessToken string) (*ServerInfoRepesentation, error) // GetUserInfo gets the user info for the given realm GetUserInfo(ctx context.Context, accessToken, realm string) (*UserInfo, error) // GetRawUserInfo calls the UserInfo endpoint and returns a raw json object GetRawUserInfo(ctx context.Context, accessToken, realm string) (map[string]interface{}, error) // ExecuteActionsEmail executes an actions email ExecuteActionsEmail(ctx context.Context, token, realm string, params ExecuteActionsEmail) error // CreateGroup creates a new group CreateGroup(ctx context.Context, accessToken, realm string, group Group) (string, error) // CreateChildGroup creates a new child group CreateChildGroup(ctx context.Context, token, realm, groupID string, group Group) (string, error) // CreateClient creates a new client CreateClient(ctx context.Context, accessToken, realm string, clientID Client) (string, error) // CreateClientScope creates a new clientScope CreateClientScope(ctx context.Context, accessToken, realm string, scope ClientScope) (string, error) // CreateComponent creates a new component CreateComponent(ctx context.Context, accessToken, realm string, component Component) (string, error) // CreateClientScopeMappingsRealmRoles creates realm-level roles to the client’s scope CreateClientScopeMappingsRealmRoles(ctx context.Context, token, realm, clientID string, roles []Role) error // CreateClientScopeMappingsClientRoles creates client-level roles from the client’s scope CreateClientScopeMappingsClientRoles(ctx context.Context, token, realm, clientID, clientsID string, roles []Role) error // UpdateGroup updates the given group UpdateGroup(ctx context.Context, accessToken, realm string, updatedGroup Group) error // UpdateRole updates the given role UpdateRole(ctx context.Context, accessToken, realm, clientID string, role Role) error // UpdateClient updates the given client UpdateClient(ctx context.Context, accessToken, realm string, updatedClient Client) error // UpdateClientScope updates the given clientScope UpdateClientScope(ctx context.Context, accessToken, realm string, scope ClientScope) error // DeleteComponent deletes the given component DeleteComponent(ctx context.Context, accessToken, realm, componentID string) error // DeleteGroup deletes the given group DeleteGroup(ctx context.Context, accessToken, realm, groupID string) error // DeleteClient deletes the given client DeleteClient(ctx context.Context, accessToken, realm, clientID string) error // DeleteClientScope DeleteClientScope(ctx context.Context, accessToken, realm, scopeID string) error // DeleteClientScopeMappingsRealmRoles deletes realm-level roles from the client’s scope DeleteClientScopeMappingsRealmRoles(ctx context.Context, token, realm, clientID string, roles []Role) error // DeleteClientScopeMappingsClientRoles deletes client-level roles from the client’s scope DeleteClientScopeMappingsClientRoles(ctx context.Context, token, realm, clientID, clientsID string, roles []Role) error // GetClient returns a client GetClient(ctx context.Context, accessToken, realm, clientID string) (*Client, error) // GetClientsDefaultScopes returns a list of the client's default scopes GetClientsDefaultScopes(ctx context.Context, token, realm, clientID string) ([]*ClientScope, error) // AddDefaultScopeToClient adds a client scope to the list of client's default scopes AddDefaultScopeToClient(ctx context.Context, token, realm, clientID, scopeID string) error // RemoveDefaultScopeFromClient removes a client scope from the list of client's default scopes RemoveDefaultScopeFromClient(ctx context.Context, token, realm, clientID, scopeID string) error // GetClientsOptionalScopes returns a list of the client's optional scopes GetClientsOptionalScopes(ctx context.Context, token, realm, clientID string) ([]*ClientScope, error) // AddOptionalScopeToClient adds a client scope to the list of client's optional scopes AddOptionalScopeToClient(ctx context.Context, token, realm, clientID, scopeID string) error // RemoveOptionalScopeFromClient deletes a client scope from the list of client's optional scopes RemoveOptionalScopeFromClient(ctx context.Context, token, realm, clientID, scopeID string) error // GetDefaultOptionalClientScopes returns a list of default realm optional scopes GetDefaultOptionalClientScopes(ctx context.Context, token, realm string) ([]*ClientScope, error) // GetDefaultDefaultClientScopes returns a list of default realm default scopes GetDefaultDefaultClientScopes(ctx context.Context, token, realm string) ([]*ClientScope, error) // GetClientScope returns a clientscope GetClientScope(ctx context.Context, token, realm, scopeID string) (*ClientScope, error) // GetClientScopes returns all client scopes GetClientScopes(ctx context.Context, token, realm string) ([]*ClientScope, error) // GetClientScopeMappings returns all scope mappings for the client GetClientScopeMappings(ctx context.Context, token, realm, clientID string) (*MappingsRepresentation, error) // GetClientScopeMappingsRealmRoles returns realm-level roles associated with the client’s scope GetClientScopeMappingsRealmRoles(ctx context.Context, token, realm, clientID string) ([]*Role, error) // GetClientScopeMappingsRealmRolesAvailable returns realm-level roles that are available to attach to this client’s scope GetClientScopeMappingsRealmRolesAvailable(ctx context.Context, token, realm, clientID string) ([]*Role, error) // GetClientScopeMappingsClientRoles returns roles associated with a client’s scope GetClientScopeMappingsClientRoles(ctx context.Context, token, realm, clientID, clientsID string) ([]*Role, error) // GetClientScopeMappingsClientRolesAvailable returns available roles associated with a client’s scope GetClientScopeMappingsClientRolesAvailable(ctx context.Context, token, realm, clientID, clientsID string) ([]*Role, error) // GetClientSecret returns a client's secret GetClientSecret(ctx context.Context, token, realm, clientID string) (*CredentialRepresentation, error) // GetClientServiceAccount retrieves the service account "user" for a client if enabled GetClientServiceAccount(ctx context.Context, token, realm, clientID string) (*User, error) // RegenerateClientSecret creates a new client secret returning the updated CredentialRepresentation RegenerateClientSecret(ctx context.Context, token, realm, clientID string) (*CredentialRepresentation, error) // GetKeyStoreConfig gets the keyStoreConfig GetKeyStoreConfig(ctx context.Context, accessToken, realm string) (*KeyStoreConfig, error) // GetComponents gets components of the given realm GetComponents(ctx context.Context, accessToken, realm string) ([]*Component, error) // GetDefaultGroups returns a list of default groups GetDefaultGroups(ctx context.Context, accessToken, realm string) ([]*Group, error) // AddDefaultGroup adds group to the list of default groups AddDefaultGroup(ctx context.Context, accessToken, realm, groupID string) error // RemoveDefaultGroup removes group from the list of default groups RemoveDefaultGroup(ctx context.Context, accessToken, realm, groupID string) error // GetGroups gets all groups of the given realm GetGroups(ctx context.Context, accessToken, realm string, params GetGroupsParams) ([]*Group, error) // GetGroupsCount gets groups count of the given realm GetGroupsCount(ctx context.Context, token, realm string, params GetGroupsParams) (int, error) // GetGroup gets the given group GetGroup(ctx context.Context, accessToken, realm, groupID string) (*Group, error) // GetGroupMembers get a list of users of group with id in realm GetGroupMembers(ctx context.Context, accessToken, realm, groupID string, params GetGroupsParams) ([]*User, error) // GetRoleMappingByGroupID gets the rolemapping for the given group id GetRoleMappingByGroupID(ctx context.Context, accessToken, realm, groupID string) (*MappingsRepresentation, error) // GetRoleMappingByUserID gets the rolemapping for the given user id GetRoleMappingByUserID(ctx context.Context, accessToken, realm, userID string) (*MappingsRepresentation, error) // GetClients gets the clients in the realm GetClients(ctx context.Context, accessToken, realm string, params GetClientsParams) ([]*Client, error) // GetClientOfflineSessions returns offline sessions associated with the client GetClientOfflineSessions(ctx context.Context, token, realm, clientID string) ([]*UserSessionRepresentation, error) // GetClientUserSessions returns user sessions associated with the client GetClientUserSessions(ctx context.Context, token, realm, clientID string) ([]*UserSessionRepresentation, error) // CreateClientProtocolMapper creates a protocol mapper in client scope CreateClientProtocolMapper(ctx context.Context, token, realm, clientID string, mapper ProtocolMapperRepresentation) (string, error) // CreateClientProtocolMapper updates a protocol mapper in client scope UpdateClientProtocolMapper(ctx context.Context, token, realm, clientID, mapperID string, mapper ProtocolMapperRepresentation) error // DeleteClientProtocolMapper deletes a protocol mapper in client scope DeleteClientProtocolMapper(ctx context.Context, token, realm, clientID, mapperID string) error // CreateRealmRole creates a role in a realm CreateRealmRole(ctx context.Context, token, realm string, role Role) (string, error) // GetRealmRole returns a role from a realm by role's name GetRealmRole(ctx context.Context, token, realm, roleName string) (*Role, error) // GetRealmRoles get all roles of the given realm. It's an alias for the GetRoles function GetRealmRoles(ctx context.Context, accessToken, realm string) ([]*Role, error) // GetRealmRolesByUserID returns all roles assigned to the given user GetRealmRolesByUserID(ctx context.Context, accessToken, realm, userID string) ([]*Role, error) // GetRealmRolesByGroupID returns all roles assigned to the given group GetRealmRolesByGroupID(ctx context.Context, accessToken, realm, groupID string) ([]*Role, error) // UpdateRealmRole updates a role in a realm UpdateRealmRole(ctx context.Context, token, realm, roleName string, role Role) error // DeleteRealmRole deletes a role in a realm by role's name DeleteRealmRole(ctx context.Context, token, realm, roleName string) error // AddRealmRoleToUser adds realm-level role mappings AddRealmRoleToUser(ctx context.Context, token, realm, userID string, roles []Role) error // DeleteRealmRoleFromUser deletes realm-level role mappings DeleteRealmRoleFromUser(ctx context.Context, token, realm, userID string, roles []Role) error // AddRealmRoleToGroup adds realm-level role mappings AddRealmRoleToGroup(ctx context.Context, token, realm, groupID string, roles []Role) error // DeleteRealmRoleFromGroup deletes realm-level role mappings DeleteRealmRoleFromGroup(ctx context.Context, token, realm, groupID string, roles []Role) error // AddRealmRoleComposite adds roles as composite AddRealmRoleComposite(ctx context.Context, token, realm, roleName string, roles []Role) error // AddRealmRoleComposite adds roles as composite DeleteRealmRoleComposite(ctx context.Context, token, realm, roleName string, roles []Role) error // GetCompositeRealmRolesByRoleID returns all realm composite roles associated with the given client role GetCompositeRealmRolesByRoleID(ctx context.Context, token, realm, roleID string) ([]*Role, error) // GetCompositeRealmRolesByUserID returns all realm roles and composite roles assigned to the given user GetCompositeRealmRolesByUserID(ctx context.Context, token, realm, userID string) ([]*Role, error) // GetCompositeRealmRolesByGroupID returns all realm roles and composite roles assigned to the given group GetCompositeRealmRolesByGroupID(ctx context.Context, token, realm, groupID string) ([]*Role, error) // GetAvailableRealmRolesByUserID returns all available realm roles to the given user GetAvailableRealmRolesByUserID(ctx context.Context, token, realm, userID string) ([]*Role, error) // GetAvailableRealmRolesByGroupID returns all available realm roles to the given group GetAvailableRealmRolesByGroupID(ctx context.Context, token, realm, groupID string) ([]*Role, error) // AddClientRoleToUser adds a client role to the user AddClientRoleToUser(ctx context.Context, token, realm, clientID, userID string, roles []Role) error // AddClientRoleToGroup adds a client role to the group AddClientRoleToGroup(ctx context.Context, token, realm, clientID, groupID string, roles []Role) error // CreateClientRole creates a new role for a client CreateClientRole(ctx context.Context, accessToken, realm, clientID string, role Role) (string, error) // DeleteClientRole deletes the given role DeleteClientRole(ctx context.Context, accessToken, realm, clientID, roleName string) error // DeleteClientRoleFromUser removes a client role from from the user DeleteClientRoleFromUser(ctx context.Context, token, realm, clientID, userID string, roles []Role) error // DeleteClientRoleFromGroup removes a client role from from the group DeleteClientRoleFromGroup(ctx context.Context, token, realm, clientID, groupID string, roles []Role) error // GetClientRoles gets roles for the given client GetClientRoles(ctx context.Context, accessToken, realm, clientID string) ([]*Role, error) // GetRealmRolesByUserID returns all client roles assigned to the given user GetClientRolesByUserID(ctx context.Context, token, realm, clientID, userID string) ([]*Role, error) // GetClientRolesByGroupID returns all client roles assigned to the given group GetClientRolesByGroupID(ctx context.Context, token, realm, clientID, groupID string) ([]*Role, error) // GetCompositeClientRolesByRoleID returns all client composite roles associated with the given client role GetCompositeClientRolesByRoleID(ctx context.Context, token, realm, clientID, roleID string) ([]*Role, error) // GetCompositeClientRolesByUserID returns all client roles and composite roles assigned to the given user GetCompositeClientRolesByUserID(ctx context.Context, token, realm, clientID, userID string) ([]*Role, error) // GetCompositeClientRolesByGroupID returns all client roles and composite roles assigned to the given group GetCompositeClientRolesByGroupID(ctx context.Context, token, realm, clientID, groupID string) ([]*Role, error) // GetAvailableClientRolesByUserID returns all available client roles to the given user GetAvailableClientRolesByUserID(ctx context.Context, token, realm, clientID, userID string) ([]*Role, error) // GetAvailableClientRolesByGroupID returns all available client roles to the given group GetAvailableClientRolesByGroupID(ctx context.Context, token, realm, clientID, groupID string) ([]*Role, error) // GetClientRole get a role for the given client in a realm by role name GetClientRole(ctx context.Context, token, realm, clientID, roleName string) (*Role, error) // AddClientRoleComposite adds roles as composite AddClientRoleComposite(ctx context.Context, token, realm, roleID string, roles []Role) error // DeleteClientRoleComposite deletes composites from a role DeleteClientRoleComposite(ctx context.Context, token, realm, roleID string, roles []Role) error // GetRealm returns top-level representation of the realm GetRealm(ctx context.Context, token, realm string) (*RealmRepresentation, error) // GetRealms returns top-level representation of all realms GetRealms(ctx context.Context, token string) ([]*RealmRepresentation, error) // CreateRealm creates a realm CreateRealm(ctx context.Context, token string, realm RealmRepresentation) (string, error) // UpdateRealm updates a given realm UpdateRealm(ctx context.Context, token string, realm RealmRepresentation) error // DeleteRealm removes a realm DeleteRealm(ctx context.Context, token, realm string) error // ClearRealmCache clears realm cache ClearRealmCache(ctx context.Context, token, realm string) error // ClearUserCache clears realm cache ClearUserCache(ctx context.Context, token, realm string) error // ClearKeysCache clears realm cache ClearKeysCache(ctx context.Context, token, realm string) error // *** Users *** // CreateUser creates a new user CreateUser(ctx context.Context, token, realm string, user User) (string, error) // DeleteUser deletes the given user DeleteUser(ctx context.Context, accessToken, realm, userID string) error // GetUserByID gets the user with the given id GetUserByID(ctx context.Context, accessToken, realm, userID string) (*User, error) // GetUser count returns the userCount of the given realm GetUserCount(ctx context.Context, accessToken, realm string, params GetUsersParams) (int, error) // GetUsers gets all users of the given realm GetUsers(ctx context.Context, accessToken, realm string, params GetUsersParams) ([]*User, error) // GetUserGroups gets the groups of the given user GetUserGroups(ctx context.Context, accessToken, realm, userID string, params GetGroupsParams) ([]*UserGroup, error) // GetUsersByRoleName returns all users have a given role GetUsersByRoleName(ctx context.Context, token, realm, roleName string) ([]*User, error) // GetUsersByClientRoleName returns all users have a given client role GetUsersByClientRoleName(ctx context.Context, token, realm, clientID, roleName string, params GetUsersByRoleParams) ([]*User, error) // SetPassword sets a new password for the user with the given id. Needs elevated privileges SetPassword(ctx context.Context, token, userID, realm, password string, temporary bool) error // UpdateUser updates the given user UpdateUser(ctx context.Context, accessToken, realm string, user User) error // AddUserToGroup puts given user to given group AddUserToGroup(ctx context.Context, token, realm, userID, groupID string) error // DeleteUserFromGroup deletes given user from given group DeleteUserFromGroup(ctx context.Context, token, realm, userID, groupID string) error // GetUserSessions returns user sessions associated with the user GetUserSessions(ctx context.Context, token, realm, userID string) ([]*UserSessionRepresentation, error) // GetUserOfflineSessionsForClient returns offline sessions associated with the user and client GetUserOfflineSessionsForClient(ctx context.Context, token, realm, userID, clientID string) ([]*UserSessionRepresentation, error) // GetUserFederatedIdentities gets all user federated identities GetUserFederatedIdentities(ctx context.Context, token, realm, userID string) ([]*FederatedIdentityRepresentation, error) // CreateUserFederatedIdentity creates an user federated identity CreateUserFederatedIdentity(ctx context.Context, token, realm, userID, providerID string, federatedIdentityRep FederatedIdentityRepresentation) error // DeleteUserFederatedIdentity deletes an user federated identity DeleteUserFederatedIdentity(ctx context.Context, token, realm, userID, providerID string) error // *** Identity Provider ** // CreateIdentityProvider creates an identity provider in a realm CreateIdentityProvider(ctx context.Context, token, realm string, providerRep IdentityProviderRepresentation) (string, error) // GetIdentityProviders gets identity providers in a realm GetIdentityProviders(ctx context.Context, token, realm string) ([]*IdentityProviderRepresentation, error) // GetIdentityProvider gets the identity provider in a realm GetIdentityProvider(ctx context.Context, token, realm, alias string) (*IdentityProviderRepresentation, error) // UpdateIdentityProvider updates the identity provider in a realm UpdateIdentityProvider(ctx context.Context, token, realm, alias string, providerRep IdentityProviderRepresentation) error // DeleteIdentityProvider deletes the identity provider in a realm DeleteIdentityProvider(ctx context.Context, token, realm, alias string) error // GetIdentityProviderConfig gets the identity provider in a realm ExportIDPPublicBrokerConfig(ctx context.Context, token, realm, alias string) (*string, error) // *** Protection API *** // GetResource returns a client's resource with the given id GetResource(ctx context.Context, token, realm, clientID, resourceID string) (*ResourceRepresentation, error) // GetResources a returns resources associated with the client GetResources(ctx context.Context, token, realm, clientID string, params GetResourceParams) ([]*ResourceRepresentation, error) // CreateResource creates a resource associated with the client CreateResource(ctx context.Context, token, realm, clientID string, resource ResourceRepresentation) (*ResourceRepresentation, error) // UpdateResource updates a resource associated with the client UpdateResource(ctx context.Context, token, realm, clientID string, resource ResourceRepresentation) error // DeleteResource deletes a resource associated with the client DeleteResource(ctx context.Context, token, realm, clientID, resourceID string) error // GetScope returns a client's scope with the given id GetScope(ctx context.Context, token, realm, clientID, scopeID string) (*ScopeRepresentation, error) // GetScopes returns scopes associated with the client GetScopes(ctx context.Context, token, realm, clientID string, params GetScopeParams) ([]*ScopeRepresentation, error) // CreateScope creates a scope associated with the client CreateScope(ctx context.Context, token, realm, clientID string, scope ScopeRepresentation) (*ScopeRepresentation, error) // UpdateScope updates a scope associated with the client UpdateScope(ctx context.Context, token, realm, clientID string, resource ScopeRepresentation) error // DeleteScope deletes a scope associated with the client DeleteScope(ctx context.Context, token, realm, clientID, scopeID string) error // GetPolicy returns a client's policy with the given id GetPolicy(ctx context.Context, token, realm, clientID, policyID string) (*PolicyRepresentation, error) // GetPolicies returns policies associated with the client GetPolicies(ctx context.Context, token, realm, clientID string, params GetPolicyParams) ([]*PolicyRepresentation, error) // CreatePolicy creates a policy associated with the client CreatePolicy(ctx context.Context, token, realm, clientID string, policy PolicyRepresentation) (*PolicyRepresentation, error) // UpdatePolicy updates a policy associated with the client UpdatePolicy(ctx context.Context, token, realm, clientID string, policy PolicyRepresentation) error // DeletePolicy deletes a policy associated with the client DeletePolicy(ctx context.Context, token, realm, clientID, policyID string) error // GetPermission returns a client's permission with the given id GetPermission(ctx context.Context, token, realm, clientID, permissionID string) (*PermissionRepresentation, error) // GetPermissions returns permissions associated with the client GetPermissions(ctx context.Context, token, realm, clientID string, params GetPermissionParams) ([]*PermissionRepresentation, error) // CreatePermission creates a permission associated with the client CreatePermission(ctx context.Context, token, realm, clientID string, permission PermissionRepresentation) (*PermissionRepresentation, error) // UpdatePermission updates a permission associated with the client UpdatePermission(ctx context.Context, token, realm, clientID string, permission PermissionRepresentation) error // DeletePermission deletes a permission associated with the client DeletePermission(ctx context.Context, token, realm, clientID, permissionID string) error // GetCredentialRegistrators returns credentials registrators GetCredentialRegistrators(ctx context.Context, token, realm string) ([]string, error) // GetConfiguredUserStorageCredentialTypes returns credential types, which are provided by the user storage where user is stored GetConfiguredUserStorageCredentialTypes(ctx context.Context, token, realm, userID string) ([]string, error) // GetCredentials returns credentials available for a given user GetCredentials(ctx context.Context, token, realm, UserID string) ([]*CredentialRepresentation, error) // DeleteCredentials deletes the given credential for a given user DeleteCredentials(ctx context.Context, token, realm, UserID, CredentialID string) error // UpdateCredentialUserLabel updates label for the given credential for the given user UpdateCredentialUserLabel(ctx context.Context, token, realm, userID, credentialID, userLabel string) error // DisableAllCredentialsByType disables all credentials for a user of a specific type DisableAllCredentialsByType(ctx context.Context, token, realm, userID string, types []string) error // MoveCredentialBehind move a credential to a position behind another credential MoveCredentialBehind(ctx context.Context, token, realm, userID, credentialID, newPreviousCredentialID string) error // MoveCredentialToFirst move a credential to a first position in the credentials list of the user MoveCredentialToFirst(ctx context.Context, token, realm, userID, credentialID string) error }
GoCloak holds all methods a client should fulfill
type Group ¶
type Group struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Path *string `json:"path,omitempty"` SubGroups *[]Group `json:"subGroups,omitempty"` Attributes *map[string][]string `json:"attributes,omitempty"` Access *map[string]bool `json:"access,omitempty"` ClientRoles *map[string][]string `json:"clientRoles,omitempty"` RealmRoles *[]string `json:"realmRoles,omitempty"` }
Group is a Group
type GroupDefinition ¶
type GroupDefinition struct { ID *string `json:"id,omitempty"` Path *string `json:"path,omitempty"` ExtendChildren *bool `json:"extendChildren,omitempty"` }
GroupDefinition represents a group in a GroupPolicyRepresentation
type GroupPolicyRepresentation ¶
type GroupPolicyRepresentation struct { Groups *[]GroupDefinition `json:"groups,omitempty"` GroupsClaim *string `json:"groupsClaim,omitempty"` }
GroupPolicyRepresentation represents group based policies
type GroupsCount ¶
type GroupsCount struct {
Count int `json:"count,omitempty"`
}
GroupsCount represents the groups count response from keycloak
type HTTPErrorResponse ¶
type HTTPErrorResponse struct { Error string `json:"error,omitempty"` Message string `json:"errorMessage,omitempty"` Description string `json:"error_description,omitempty"` }
HTTPErrorResponse is a model of an error response
func (HTTPErrorResponse) NotEmpty ¶
func (e HTTPErrorResponse) NotEmpty() bool
NotEmpty validates that error is not emptyp
func (HTTPErrorResponse) String ¶
func (e HTTPErrorResponse) String() string
String returns a string representation of an error
type IdentityProviderRepresentation ¶
type IdentityProviderRepresentation struct { AddReadTokenRoleOnCreate *bool `json:"addReadTokenRoleOnCreate,omitempty"` Alias *string `json:"alias,omitempty"` Config *map[string]string `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"` }
IdentityProviderRepresentation represents an identity provider
type IssuerResponse ¶
type IssuerResponse struct { Realm *string `json:"realm,omitempty"` PublicKey *string `json:"public_key,omitempty"` TokenService *string `json:"token-service,omitempty"` AccountService *string `json:"account-service,omitempty"` TokensNotBefore *int `json:"tokens-not-before,omitempty"` }
IssuerResponse is returned by the issuer endpoint
type JSPolicyRepresentation ¶
type JSPolicyRepresentation struct {
Code *string `json:"code,omitempty"`
}
JSPolicyRepresentation represents js based policies
type JWT ¶
type JWT struct { AccessToken string `json:"access_token"` IDToken string `json:"id_token"` ExpiresIn int `json:"expires_in"` RefreshExpiresIn int `json:"refresh_expires_in"` RefreshToken string `json:"refresh_token"` TokenType string `json:"token_type"` NotBeforePolicy int `json:"not-before-policy"` SessionState string `json:"session_state"` Scope string `json:"scope"` }
JWT is a JWT
type Key ¶
type Key struct { ProviderID *string `json:"providerId,omitempty"` ProviderPriority *int `json:"providerPriority,omitempty"` Kid *string `json:"kid,omitempty"` Status *string `json:"status,omitempty"` Type *string `json:"type,omitempty"` Algorithm *string `json:"algorithm,omitempty"` PublicKey *string `json:"publicKey,omitempty"` Certificate *string `json:"certificate,omitempty"` }
Key is a key
type KeyStoreConfig ¶
type KeyStoreConfig struct { ActiveKeys *ActiveKeys `json:"active,omitempty"` Key *[]Key `json:"keys,omitempty"` }
KeyStoreConfig holds the keyStoreConfig
type MappingsRepresentation ¶
type MappingsRepresentation struct { ClientMappings map[string]*ClientMappingsRepresentation `json:"clientMappings,omitempty"` RealmMappings *[]Role `json:"realmMappings,omitempty"` }
MappingsRepresentation is a representation of role mappings
type MemoryInfoRepresentation ¶
type MemoryInfoRepresentation struct { Free *int `json:"free,omitempty"` FreeFormated *string `json:"freeFormated,omitempty"` FreePercentage *int `json:"freePercentage,omitempty"` Total *int `json:"total,omitempty"` TotalFormated *string `json:"totalFormated,omitempty"` Used *int `json:"used,omitempty"` UsedFormated *string `json:"usedFormated,omitempty"` }
MemoryInfoRepresentation represents a memory info
type MultiValuedHashMap ¶
type MultiValuedHashMap struct { Empty *bool `json:"empty,omitempty"` LoadFactor *float32 `json:"loadFactor,omitempty"` Threshold *int32 `json:"threshold,omitempty"` }
MultiValuedHashMap represents something
type PermissionRepresentation ¶
type PermissionRepresentation struct { DecisionStrategy *DecisionStrategy `json:"decisionStrategy,omitempty"` Description *string `json:"description,omitempty"` ID *string `json:"id,omitempty"` Logic *Logic `json:"logic,omitempty"` Name *string `json:"name,omitempty"` Policies *[]string `json:"policies,omitempty"` Resources *[]string `json:"resources,omitempty"` ResourceType *string `json:"resource_type,omitempty"` Scopes *[]string `json:"scopes,omitempty"` Type *string `json:"type,omitempty"` }
PermissionRepresentation is a representation of a RequestingPartyPermission
type PolicyEnforcementMode ¶
type PolicyEnforcementMode int
PolicyEnforcementMode is an enum type for PolicyEnforcementMode of ResourceServerRepresentation
const ( ENFORCING PolicyEnforcementMode = iota PERMISSIVE DISABLED )
PolicyEnforcementMode values
type PolicyRepresentation ¶
type PolicyRepresentation struct { Config *map[string]string `json:"config,omitempty"` DecisionStrategy *DecisionStrategy `json:"decisionStrategy,omitempty"` Description *string `json:"description,omitempty"` ID *string `json:"id,omitempty"` Logic *Logic `json:"logic,omitempty"` Name *string `json:"name,omitempty"` Owner *string `json:"owner,omitempty"` Policies *[]string `json:"policies,omitempty"` Resources *[]string `json:"resources,omitempty"` Scopes *[]string `json:"scopes,omitempty"` Type *string `json:"type,omitempty"` RolePolicyRepresentation JSPolicyRepresentation ClientPolicyRepresentation TimePolicyRepresentation UserPolicyRepresentation AggregatedPolicyRepresentation GroupPolicyRepresentation }
PolicyRepresentation is a representation of a Policy
type ProtocolMapperRepresentation ¶
type ProtocolMapperRepresentation struct { Config *map[string]string `json:"config,omitempty"` ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Protocol *string `json:"protocol,omitempty"` ProtocolMapper *string `json:"protocolMapper,omitempty"` }
ProtocolMapperRepresentation represents....
type ProtocolMappers ¶
type ProtocolMappers struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Protocol *string `json:"protocol,omitempty"` ProtocolMapper *string `json:"protocolMapper,omitempty"` ConsentRequired *bool `json:"consentRequired,omitempty"` ProtocolMappersConfig *ProtocolMappersConfig `json:"config,omitempty"` }
ProtocolMappers are protocolmappers
type ProtocolMappersConfig ¶
type ProtocolMappersConfig struct { UserinfoTokenClaim *string `json:"userinfo.token.claim,omitempty"` UserAttribute *string `json:"user.attribute,omitempty"` IDTokenClaim *string `json:"id.token.claim,omitempty"` AccessTokenClaim *string `json:"access.token.claim,omitempty"` ClaimName *string `json:"claim.name,omitempty"` ClaimValue *string `json:"claim.value,omitempty"` JSONTypeLabel *string `json:"jsonType.label,omitempty"` Multivalued *string `json:"multivalued,omitempty"` UsermodelClientRoleMappingClientID *string `json:"usermodel.clientRoleMapping.clientId,omitempty"` IncludedClientAudience *string `json:"included.client.audience,omitempty"` }
ProtocolMappersConfig is a config of a protocol mapper
type RealmRepresentation ¶
type RealmRepresentation struct { AccessCodeLifespan *int `json:"accessCodeLifespan,omitempty"` AccessCodeLifespanLogin *int `json:"accessCodeLifespanLogin,omitempty"` AccessCodeLifespanUserAction *int `json:"accessCodeLifespanUserAction,omitempty"` AccessTokenLifespan *int `json:"accessTokenLifespan,omitempty"` AccessTokenLifespanForImplicitFlow *int `json:"accessTokenLifespanForImplicitFlow,omitempty"` AccountTheme *string `json:"accountTheme,omitempty"` ActionTokenGeneratedByAdminLifespan *int `json:"actionTokenGeneratedByAdminLifespan,omitempty"` ActionTokenGeneratedByUserLifespan *int `json:"actionTokenGeneratedByUserLifespan,omitempty"` AdminEventsDetailsEnabled *bool `json:"adminEventsDetailsEnabled,omitempty"` AdminEventsEnabled *bool `json:"adminEventsEnabled,omitempty"` AdminTheme *string `json:"adminTheme,omitempty"` Attributes *map[string]string `json:"attributes,omitempty"` AuthenticationFlows *[]interface{} `json:"authenticationFlows,omitempty"` AuthenticatorConfig *[]interface{} `json:"authenticatorConfig,omitempty"` BrowserFlow *string `json:"browserFlow,omitempty"` BrowserSecurityHeaders *map[string]string `json:"browserSecurityHeaders,omitempty"` BruteForceProtected *bool `json:"bruteForceProtected,omitempty"` ClientAuthenticationFlow *string `json:"clientAuthenticationFlow,omitempty"` ClientScopeMappings *map[string]string `json:"clientScopeMappings,omitempty"` ClientScopes *[]ClientScope `json:"clientScopes,omitempty"` Clients *[]Client `json:"clients,omitempty"` Components interface{} `json:"components,omitempty"` DefaultDefaultClientScopes *[]string `json:"defaultDefaultClientScopes,omitempty"` DefaultGroups *[]string `json:"defaultGroups,omitempty"` DefaultLocale *string `json:"defaultLocale,omitempty"` DefaultOptionalClientScopes *[]string `json:"defaultOptionalClientScopes,omitempty"` DefaultRoles *[]string `json:"defaultRoles,omitempty"` DefaultSignatureAlgorithm *string `json:"defaultSignatureAlgorithm,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 *int `json:"failureFactor,omitempty"` FederatedUsers *[]interface{} `json:"federatedUsers,omitempty"` Groups *[]interface{} `json:"groups,omitempty"` ID *string `json:"id,omitempty"` IdentityProviderMappers *[]interface{} `json:"identityProviderMappers,omitempty"` IdentityProviders *[]interface{} `json:"identityProviders,omitempty"` InternationalizationEnabled *bool `json:"internationalizationEnabled,omitempty"` KeycloakVersion *string `json:"keycloakVersion,omitempty"` LoginTheme *string `json:"loginTheme,omitempty"` LoginWithEmailAllowed *bool `json:"loginWithEmailAllowed,omitempty"` MaxDeltaTimeSeconds *int `json:"maxDeltaTimeSeconds,omitempty"` MaxFailureWaitSeconds *int `json:"maxFailureWaitSeconds,omitempty"` MinimumQuickLoginWaitSeconds *int `json:"minimumQuickLoginWaitSeconds,omitempty"` NotBefore *int `json:"notBefore,omitempty"` OfflineSessionIdleTimeout *int `json:"offlineSessionIdleTimeout,omitempty"` OfflineSessionMaxLifespan *int `json:"offlineSessionMaxLifespan,omitempty"` OfflineSessionMaxLifespanEnabled *bool `json:"offlineSessionMaxLifespanEnabled,omitempty"` OtpPolicyAlgorithm *string `json:"otpPolicyAlgorithm,omitempty"` OtpPolicyDigits *int `json:"otpPolicyDigits,omitempty"` OtpPolicyInitialCounter *int `json:"otpPolicyInitialCounter,omitempty"` OtpPolicyLookAheadWindow *int `json:"otpPolicyLookAheadWindow,omitempty"` OtpPolicyPeriod *int `json:"otpPolicyPeriod,omitempty"` OtpPolicyType *string `json:"otpPolicyType,omitempty"` OtpSupportedApplications *[]string `json:"otpSupportedApplications,omitempty"` PasswordPolicy *string `json:"passwordPolicy,omitempty"` PermanentLockout *bool `json:"permanentLockout,omitempty"` ProtocolMappers *[]interface{} `json:"protocolMappers,omitempty"` QuickLoginCheckMilliSeconds *int64 `json:"quickLoginCheckMilliSeconds,omitempty"` Realm *string `json:"realm,omitempty"` RefreshTokenMaxReuse *int `json:"refreshTokenMaxReuse,omitempty"` RegistrationAllowed *bool `json:"registrationAllowed,omitempty"` RegistrationEmailAsUsername *bool `json:"registrationEmailAsUsername,omitempty"` RegistrationFlow *string `json:"registrationFlow,omitempty"` RememberMe *bool `json:"rememberMe,omitempty"` RequiredActions *[]interface{} `json:"requiredActions,omitempty"` ResetCredentialsFlow *string `json:"resetCredentialsFlow,omitempty"` ResetPasswordAllowed *bool `json:"resetPasswordAllowed,omitempty"` RevokeRefreshToken *bool `json:"revokeRefreshToken,omitempty"` Roles *RolesRepresentation `json:"roles,omitempty"` ScopeMappings *[]interface{} `json:"scopeMappings,omitempty"` SMTPServer *map[string]string `json:"smtpServer,omitempty"` SslRequired *string `json:"sslRequired,omitempty"` SsoSessionIdleTimeout *int `json:"ssoSessionIdleTimeout,omitempty"` SsoSessionIdleTimeoutRememberMe *int `json:"ssoSessionIdleTimeoutRememberMe,omitempty"` SsoSessionMaxLifespan *int `json:"ssoSessionMaxLifespan,omitempty"` SsoSessionMaxLifespanRememberMe *int `json:"ssoSessionMaxLifespanRememberMe,omitempty"` SupportedLocales *[]string `json:"supportedLocales,omitempty"` UserFederationMappers *[]interface{} `json:"userFederationMappers,omitempty"` UserFederationProviders *[]interface{} `json:"userFederationProviders,omitempty"` UserManagedAccessAllowed *bool `json:"userManagedAccessAllowed,omitempty"` Users *[]User `json:"users,omitempty"` VerifyEmail *bool `json:"verifyEmail,omitempty"` WaitIncrementSeconds *int `json:"waitIncrementSeconds,omitempty"` }
RealmRepresentation represents a realm
type RequestingPartyPermission ¶
type RequestingPartyPermission struct { Claims *map[string]string `json:"claims,omitempty"` ResourceID *string `json:"rsid,omitempty"` ResourceName *string `json:"rsname,omitempty"` Scopes *[]string `json:"scopes"` }
RequestingPartyPermission is returned by request party token with response type set to "permissions"
type RequestingPartyTokenOptions ¶
type RequestingPartyTokenOptions struct { GrantType *string `json:"grant_type,omitempty"` Ticket *string `json:"ticket,omitempty"` ClaimToken *string `json:"claim_token,omitempty"` ClaimTokenFormat *string `json:"claim_token_format,omitempty"` RPT *string `json:"rpt,omitempty"` Permissions *[]string `json:"-"` Audience *string `json:"audience,omitempty"` ResponseIncludeResourceName *bool `json:"response_include_resource_name,string"` ResponsePermissionsLimit *uint32 `json:"response_permissions_limit,omitempty"` SubmitRequest *bool `json:"submit_request,string,omitempty"` ResponseMode *string `json:"response_mode,omitempty"` }
RequestingPartyTokenOptions represents the options to obtain a requesting party token
func (*RequestingPartyTokenOptions) FormData ¶
func (t *RequestingPartyTokenOptions) FormData() map[string]string
FormData returns a map of options to be used in SetFormData function
type ResourceOwnerRepresentation ¶
type ResourceOwnerRepresentation struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` }
ResourceOwnerRepresentation represents a resource's owner
type ResourcePermission ¶
type ResourcePermission struct { RSID *string `json:"rsid,omitempty"` ResourceID *string `json:"resource_id,omitempty"` RSName *string `json:"rsname,omitempty"` Scopes *[]string `json:"scopes,omitempty"` ResourceScopes *[]string `json:"resource_scopes,omitempty"` }
ResourcePermission represents a permission granted to a resource
type ResourceRepresentation ¶
type ResourceRepresentation struct { ID *string `json:"_id,omitempty"` // TODO: is marked "_optional" in template, input error or deliberate? Attributes *map[string][]string `json:"attributes,omitempty"` DisplayName *string `json:"displayName,omitempty"` IconURI *string `json:"icon_uri,omitempty"` // TODO: With "_" because that's how it's written down in the template Name *string `json:"name,omitempty"` Owner *ResourceOwnerRepresentation `json:"owner,omitempty"` OwnerManagedAccess *bool `json:"ownerManagedAccess,omitempty"` Scopes *[]ScopeRepresentation `json:"scopes,omitempty"` Type *string `json:"type,omitempty"` URIs *[]string `json:"uris,omitempty"` }
ResourceRepresentation is a representation of a Resource
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 *PolicyEnforcementMode `json:"policyEnforcementMode,omitempty"` Resources *[]ResourceRepresentation `json:"resources,omitempty"` Scopes *[]ScopeRepresentation `json:"scopes,omitempty"` }
ResourceServerRepresentation represents the resources of a Server
type RetrospecTokenResult ¶
type RetrospecTokenResult struct { Permissions *[]ResourcePermission `json:"permissions,omitempty"` Exp *int `json:"exp,omitempty"` Nbf *int `json:"nbf,omitempty"` Iat *int `json:"iat,omitempty"` Aud *StringOrArray `json:"aud,omitempty"` Active *bool `json:"active,omitempty"` AuthTime *int `json:"auth_time,omitempty"` Jti *string `json:"jti,omitempty"` Type *string `json:"typ,omitempty"` }
RetrospecTokenResult is returned when a token was checked
type Role ¶
type Role struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` ScopeParamRequired *bool `json:"scopeParamRequired,omitempty"` Composite *bool `json:"composite,omitempty"` Composites *CompositesRepresentation `json:"composites,omitempty"` ClientRole *bool `json:"clientRole,omitempty"` ContainerID *string `json:"containerId,omitempty"` Description *string `json:"description,omitempty"` Attributes *map[string][]string `json:"attributes,omitempty"` }
Role is a role
type RoleDefinition ¶
type RoleDefinition struct { ID *string `json:"id,omitempty"` Private *bool `json:"private,omitempty"` Required *bool `json:"required,omitempty"` }
RoleDefinition represents a role in a RolePolicyRepresentation
type RolePolicyRepresentation ¶
type RolePolicyRepresentation struct {
Roles *[]RoleDefinition `json:"roles,omitempty"`
}
RolePolicyRepresentation represents role based policies
type RolesRepresentation ¶
type RolesRepresentation struct { Client *map[string][]Role `json:"client,omitempty"` Realm *[]Role `json:"realm,omitempty"` }
RolesRepresentation represents the roles of a realm
type ScopeRepresentation ¶
type ScopeRepresentation struct { DisplayName *string `json:"displayName,omitempty"` 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"` }
ScopeRepresentation is a represents a Scope
type ServerInfoRepesentation ¶
type ServerInfoRepesentation struct { SystemInfo *SystemInfoRepresentation `json:"systemInfo,omitempty"` MemoryInfo *MemoryInfoRepresentation `json:"memoryInfo,omitempty"` }
ServerInfoRepesentation represents a server info
type SetPasswordRequest ¶
type SetPasswordRequest struct { Type *string `json:"type,omitempty"` Temporary *bool `json:"temporary,omitempty"` Password *string `json:"value,omitempty"` }
SetPasswordRequest sets a new password
type StringOrArray ¶
type StringOrArray []string
StringOrArray represents a value that can either be a string or an array of strings
func (*StringOrArray) MarshalJSON ¶
func (s *StringOrArray) MarshalJSON() ([]byte, error)
MarshalJSON converts the array of strings to a JSON array or JSON string if there is only one item in the array
func (*StringOrArray) UnmarshalJSON ¶
func (s *StringOrArray) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals a string or an array object from a JSON array or a JSON string
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 *int `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"` }
SystemInfoRepresentation represents a system info
type TimePolicyRepresentation ¶
type TimePolicyRepresentation struct { NotBefore *string `json:"notBefore,omitempty"` NotOnOrAfter *string `json:"notOnOrAfter,omitempty"` DayMonth *string `json:"dayMonth,omitempty"` DayMonthEnd *string `json:"dayMonthEnd,omitempty"` Month *string `json:"month,omitempty"` MonthEnd *string `json:"monthEnd,omitempty"` Year *string `json:"year,omitempty"` YearEnd *string `json:"yearEnd,omitempty"` Hour *string `json:"hour,omitempty"` HourEnd *string `json:"hourEnd,omitempty"` Minute *string `json:"minute,omitempty"` MinuteEnd *string `json:"minuteEnd,omitempty"` }
TimePolicyRepresentation represents time based policies
type TokenOptions ¶
type TokenOptions struct { ClientID *string `json:"client_id,omitempty"` ClientSecret *string `json:"-"` GrantType *string `json:"grant_type,omitempty"` RefreshToken *string `json:"refresh_token,omitempty"` Scopes *[]string `json:"-"` Scope *string `json:"scope,omitempty"` ResponseTypes *[]string `json:"-"` ResponseType *string `json:"response_type,omitempty"` Permission *string `json:"permission,omitempty"` Username *string `json:"username,omitempty"` Password *string `json:"password,omitempty"` Totp *string `json:"totp,omitempty"` Code *string `json:"code,omitempty"` ClientAssertionType *string `json:"client_assertion_type,omitempty"` ClientAssertion *string `json:"client_assertion,omitempty"` }
TokenOptions represents the options to obtain a token
func (*TokenOptions) FormData ¶
func (t *TokenOptions) FormData() map[string]string
FormData returns a map of options to be used in SetFormData function
type User ¶
type User struct { ID *string `json:"id,omitempty"` CreatedTimestamp *int64 `json:"createdTimestamp,omitempty"` Username *string `json:"username,omitempty"` Enabled *bool `json:"enabled,omitempty"` Totp *bool `json:"totp,omitempty"` EmailVerified *bool `json:"emailVerified,omitempty"` FirstName *string `json:"firstName,omitempty"` LastName *string `json:"lastName,omitempty"` Email *string `json:"email,omitempty"` FederationLink *string `json:"federationLink,omitempty"` Attributes *map[string][]string `json:"attributes,omitempty"` DisableableCredentialTypes *[]interface{} `json:"disableableCredentialTypes,omitempty"` RequiredActions *[]string `json:"requiredActions,omitempty"` Access *map[string]bool `json:"access,omitempty"` ClientRoles *map[string][]string `json:"clientRoles,omitempty"` RealmRoles *[]string `json:"realmRoles,omitempty"` Groups *[]string `json:"groups,omitempty"` ServiceAccountClientID *string `json:"serviceAccountClientId,omitempty"` Credentials *[]CredentialRepresentation `json:"credentials,omitempty"` }
User represents the Keycloak User Structure
type UserGroup ¶
type UserGroup struct { ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Path *string `json:"path,omitempty"` }
UserGroup is a UserGroup
type UserInfo ¶
type UserInfo struct { Sub *string `json:"sub,omitempty"` Name *string `json:"name,omitempty"` GivenName *string `json:"given_name,omitempty"` FamilyName *string `json:"family_name,omitempty"` MiddleName *string `json:"middle_name,omitempty"` Nickname *string `json:"nickname,omitempty"` PreferredUsername *string `json:"preferred_username,omitempty"` Profile *string `json:"profile,omitempty"` Picture *string `json:"picture,omitempty"` Website *string `json:"website,omitempty"` Email *string `json:"email,omitempty"` EmailVerified *bool `json:"email_verified,omitempty"` Gender *string `json:"gender,omitempty"` ZoneInfo *string `json:"zoneinfo,omitempty"` Locale *string `json:"locale,omitempty"` PhoneNumber *string `json:"phone_number,omitempty"` PhoneNumberVerified *bool `json:"phone_number_verified,omitempty"` Address *UserInfoAddress `json:"address,omitempty"` UpdatedAt *int `json:"updated_at,omitempty"` }
UserInfo is returned by the userinfo endpoint https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
type UserInfoAddress ¶
type UserInfoAddress struct { Formatted *string `json:"formatted,omitempty"` StreetAddress *string `json:"street_address,omitempty"` Locality *string `json:"locality,omitempty"` Region *string `json:"region,omitempty"` PostalCode *string `json:"postal_code,omitempty"` Country *string `json:"country,omitempty"` }
UserInfoAddress is representation of the address sub-filed of UserInfo https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim
type UserPolicyRepresentation ¶
type UserPolicyRepresentation struct {
Users *[]string `json:"users,omitempty"`
}
UserPolicyRepresentation represents user based policies
type UserSessionRepresentation ¶
type UserSessionRepresentation struct { Clients *map[string]string `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"` }
UserSessionRepresentation represents a list of user's sessions