client

package
v0.14.1 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: Apache-2.0 Imports: 19 Imported by: 3

Documentation

Overview

Package client is the client for interacting with the governor API

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrRequestNonSuccess is returned when a call to the governor API returns a non-success status
	ErrRequestNonSuccess = errors.New("got a non-success response from governor")

	// ErrGroupNotFound is returned when a group is not found
	ErrGroupNotFound = errors.New("group not found")

	// ErrMissingGroupID is returned when a missing or bad group id is passed to a request
	ErrMissingGroupID = errors.New("missing group id in request")

	// ErrMissingOrganizationID is returned when a missing or bad organization id is passed to a request
	ErrMissingOrganizationID = errors.New("missing organization id in request")

	// ErrMissingApplicationID is returned when a missing or bad application id is passed to a request
	ErrMissingApplicationID = errors.New("missing application id in request")

	// ErrMissingApplicationTypeID is returned when a missing or bad application_type id is passed to a request
	ErrMissingApplicationTypeID = errors.New("missing application_type id in request")

	// ErrMissingUserID is returned when a missing or bad user id is passed to a request
	ErrMissingUserID = errors.New("missing user id in request")

	// ErrMissingRequestID is returned when a missing or bad request id is passed to a request
	ErrMissingRequestID = errors.New("missing request id in request")

	// ErrNilUserRequest is returned when a nil user body is passed to a request
	ErrNilUserRequest = errors.New("nil user request")

	// ErrNilGroupRequest is returned when a nil group body is passed to a request
	ErrNilGroupRequest = errors.New("nil group request")

	// ErrUserNotFound is returned when a user is expected to be returned but instead is not
	ErrUserNotFound = errors.New("user not found")

	// ErrNotificationTypeNotFound is returned when a notification type is not found
	ErrNotificationTypeNotFound = errors.New("notification type not found")

	// ErrMissingNotificationTypeID is returned when a a missing or bad notification type ID is passed to a request
	ErrMissingNotificationTypeID = errors.New("missing notification type id in request")

	// ErrNotificationTargetNotFound is returned when a notification target is not found
	ErrNotificationTargetNotFound = errors.New("notification target not found")

	// ErrMissingNotificationTargetID is returned when a a missing or bad notification target ID is passed to a request
	ErrMissingNotificationTargetID = errors.New("missing notification target id in request")

	// ErrMissingExtensionIDOrSlug is returned when a missing or bad extension ID is passed to a request
	ErrMissingExtensionIDOrSlug = errors.New("missing extension id or slug in request")

	// ErrMissingERDIDOrSlug is returned when a a missing or bad extension resource definition ID is passed to a request
	ErrMissingERDIDOrSlug = errors.New("missing ERD id or slug in request")

	// ErrMissingResourceID is returned when a a missing or bad resource ID is passed to a request
	ErrMissingResourceID = errors.New("missing resource id in request")

	// ErrNilRequest is returned when a nil body is passed to a request
	ErrNilRequest = errors.New("nil request")
)

Functions

This section is empty.

Types

type Client

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

Client is a governor API client

func NewClient

func NewClient(opts ...Option) (*Client, error)

NewClient returns a new governor client

func (*Client) AddGroupMember

func (c *Client) AddGroupMember(ctx context.Context, groupID, userID string, admin bool) error

AddGroupMember adds a user to a group in governor

func (*Client) AddGroupToApplication

func (c *Client) AddGroupToApplication(ctx context.Context, groupID, appID string) error

AddGroupToApplication links the group to the application

func (*Client) AddGroupToOrganization

func (c *Client) AddGroupToOrganization(ctx context.Context, groupID, orgID string) error

AddGroupToOrganization links the group to the organization

func (*Client) AddMemberGroup added in v0.1.3

func (c *Client) AddMemberGroup(ctx context.Context, parentGroupID, memberGroupID string, expiresAt null.Time) error

AddMemberGroup creates a new group hierarchy relationship in governor

func (*Client) Application

func (c *Client) Application(ctx context.Context, id string) (*v1alpha1.Application, error)

Application gets the details of an app from governor

func (*Client) ApplicationGroups

func (c *Client) ApplicationGroups(ctx context.Context, id string) ([]*v1alpha1.Group, error)

ApplicationGroups gets a list of groups linked to the given governor application

func (*Client) ApplicationType

func (c *Client) ApplicationType(ctx context.Context, id string) (*v1alpha1.ApplicationType, error)

ApplicationType gets the details of an application type from governor

func (*Client) ApplicationTypeApps

func (c *Client) ApplicationTypeApps(ctx context.Context, id string) ([]*v1alpha1.Application, error)

ApplicationTypeApps gets a list of governor applications with the given application type

func (*Client) ApplicationTypes

func (c *Client) ApplicationTypes(ctx context.Context) ([]*v1alpha1.ApplicationType, error)

ApplicationTypes gets the list of application types from governor

func (*Client) Applications

func (c *Client) Applications(ctx context.Context) ([]*v1alpha1.Application, error)

Applications gets the list of applications from governor

func (*Client) CreateExtension added in v0.2.0

func (c *Client) CreateExtension(ctx context.Context, exReq *v1alpha1.ExtensionReq) (*v1alpha1.Extension, error)

CreateExtension creates an extension

func (*Client) CreateExtensionResource added in v0.11.0

func (c *Client) CreateExtensionResource(
	ctx context.Context, res *v1alpha1.ExtensionResource,
) (*v1alpha1.ExtensionResource, error)

CreateExtensionResource creates an extension resource

func (*Client) CreateExtensionResourceDefinition added in v0.2.0

func (c *Client) CreateExtensionResourceDefinition(
	ctx context.Context, extensionIDOrSlug string, erdReq *v1alpha1.ExtensionResourceDefinitionReq,
) (*v1alpha1.ExtensionResourceDefinition, error)

CreateExtensionResourceDefinition creates an ERD

func (*Client) CreateGroup

func (c *Client) CreateGroup(ctx context.Context, group *v1alpha1.GroupReq) (*v1alpha1.Group, error)

CreateGroup creates a new group in governor

func (*Client) CreateNotificationTarget added in v0.1.5

func (c *Client) CreateNotificationTarget(
	ctx context.Context, ntReq *v1alpha1.NotificationTargetReq,
) (*v1alpha1.NotificationTarget, error)

CreateNotificationTarget creates a notification target

func (*Client) CreateNotificationType added in v0.1.5

func (c *Client) CreateNotificationType(
	ctx context.Context, ntReq *v1alpha1.NotificationTypeReq,
) (*v1alpha1.NotificationType, error)

CreateNotificationType creates a notification type

func (*Client) CreateUser

func (c *Client) CreateUser(ctx context.Context, user *v1alpha1.UserReq) (*v1alpha1.User, error)

CreateUser creates a user in governor and returns the user

func (*Client) CreateUserExtensionResource added in v0.2.0

func (c *Client) CreateUserExtensionResource(
	ctx context.Context, userID, extensionSlug, erdSlugPlural, erdVersion string,
	resource interface{},
) (*v1alpha1.UserExtensionResource, error)

CreateUserExtensionResource creates a user extension resource

func (*Client) DeleteExtension added in v0.2.0

func (c *Client) DeleteExtension(ctx context.Context, idOrSlug string) error

DeleteExtension deletes an extension

func (*Client) DeleteExtensionResourceDefinition added in v0.2.0

func (c *Client) DeleteExtensionResourceDefinition(
	ctx context.Context, extensionIDOrSlug, erdIDOrSlug, erdVersion string,
) error

DeleteExtensionResourceDefinition deletes a extension, erd version must be provided when using erd slug

func (*Client) DeleteGroup

func (c *Client) DeleteGroup(ctx context.Context, id string) error

DeleteGroup deletes a group from governor

func (*Client) DeleteMemberGroup added in v0.1.3

func (c *Client) DeleteMemberGroup(ctx context.Context, parentGroupID, memberGroupID string) error

DeleteMemberGroup deletes a group hierarchy relationship in governor

func (*Client) DeleteNotificationTarget added in v0.1.5

func (c *Client) DeleteNotificationTarget(ctx context.Context, idOrSlug string) error

DeleteNotificationTarget deletes a notification target

func (*Client) DeleteNotificationType added in v0.1.5

func (c *Client) DeleteNotificationType(ctx context.Context, idOrSlug string) error

DeleteNotificationType deletes a notification type

func (*Client) DeleteSystemExtensionResource added in v0.2.0

func (c *Client) DeleteSystemExtensionResource(
	ctx context.Context, extensionSlug, erdSlugPlural, erdVersion, resourceID string,
) error

DeleteSystemExtensionResource deletes a system extension resource

func (*Client) DeleteUser

func (c *Client) DeleteUser(ctx context.Context, id string) error

DeleteUser deletes a user in governor

func (*Client) DeleteUserExtensionResource added in v0.2.0

func (c *Client) DeleteUserExtensionResource(
	ctx context.Context, userID, extensionSlug, erdSlugPlural, erdVersion, resourceID string,
) error

DeleteUserExtensionResource deletes a user extension resource

func (*Client) Extension added in v0.2.0

func (c *Client) Extension(ctx context.Context, idOrSlug string, deleted bool) (*v1alpha1.Extension, error)

Extension fetch an extension

func (*Client) ExtensionResourceDefinition added in v0.2.0

func (c *Client) ExtensionResourceDefinition(
	ctx context.Context, extensionIDOrSlug, erdIDOrSlug, erdVersion string, deleted bool,
) (*v1alpha1.ExtensionResourceDefinition, error)

ExtensionResourceDefinition fetches an ERD, erd version must be provided when using erd slug

func (*Client) ExtensionResourceDefinitions added in v0.2.0

func (c *Client) ExtensionResourceDefinitions(
	ctx context.Context, extensionIDOrSlug string, deleted bool,
) ([]*v1alpha1.ExtensionResourceDefinition, error)

ExtensionResourceDefinitions list all ERDs

func (*Client) Extensions added in v0.2.0

func (c *Client) Extensions(ctx context.Context, deleted bool) ([]*v1alpha1.Extension, error)

Extensions list all extensions

func (*Client) Group

func (c *Client) Group(ctx context.Context, id string, deleted bool) (*v1alpha1.Group, error)

Group gets the details of a group from governor

func (*Client) GroupHierarchies added in v0.1.3

func (c *Client) GroupHierarchies(ctx context.Context) (*[]v1alpha1.GroupHierarchy, error)

GroupHierarchies lists all hierarchical group relationships in governor

func (*Client) GroupMemberRequests

func (c *Client) GroupMemberRequests(ctx context.Context, id string) ([]*v1alpha1.GroupMemberRequest, error)

GroupMemberRequests returns a list of member requests in the given governor group

func (*Client) GroupMembers

func (c *Client) GroupMembers(ctx context.Context, id string) ([]*v1alpha1.GroupMember, error)

GroupMembers returns a list of users in the given governor group

func (*Client) GroupMembersAll

func (c *Client) GroupMembersAll(ctx context.Context, expired bool) ([]*v1alpha1.GroupMembership, error)

GroupMembersAll returns a list of all group memberships across all groups

func (*Client) GroupMembershipRequestsAll

func (c *Client) GroupMembershipRequestsAll(ctx context.Context, expired bool) ([]*v1alpha1.GroupMemberRequest, error)

GroupMembershipRequestsAll returns all group membership requests across all users and groups

func (*Client) Groups

func (c *Client) Groups(ctx context.Context) ([]*v1alpha1.Group, error)

Groups gets the list of groups from governor

func (*Client) MemberGroups added in v0.1.3

func (c *Client) MemberGroups(ctx context.Context, id string) (*[]v1alpha1.GroupHierarchy, error)

MemberGroups lists member groups of a parent group in governor

func (*Client) NotificationPreferences added in v0.1.5

func (c *Client) NotificationPreferences(ctx context.Context, userID string) (v1alpha1.UserNotificationPreferences, error)

NotificationPreferences list all notification preferences for a user

func (*Client) NotificationTarget added in v0.1.5

func (c *Client) NotificationTarget(ctx context.Context, idOrSlug string, deleted bool) (*v1alpha1.NotificationTarget, error)

NotificationTarget fetch a notification target

func (*Client) NotificationTargets added in v0.1.5

func (c *Client) NotificationTargets(ctx context.Context, deleted bool) ([]*v1alpha1.NotificationTarget, error)

NotificationTargets list all notification targets

func (*Client) NotificationType added in v0.1.5

func (c *Client) NotificationType(ctx context.Context, idOrSlug string, deleted bool) (*v1alpha1.NotificationType, error)

NotificationType fetch a notification type

func (*Client) NotificationTypes added in v0.1.5

func (c *Client) NotificationTypes(ctx context.Context, deleted bool) ([]*v1alpha1.NotificationType, error)

NotificationTypes list all notification types

func (*Client) Organization

func (c *Client) Organization(ctx context.Context, id string) (*v1alpha1.Organization, error)

Organization gets the details of an org from governor

func (*Client) OrganizationGroups added in v0.2.6

func (c *Client) OrganizationGroups(ctx context.Context, org string) ([]*v1alpha1.Group, error)

OrganizationGroups gets the list of groups assigned to an organization from governor

func (*Client) Organizations

func (c *Client) Organizations(ctx context.Context) ([]*v1alpha1.Organization, error)

Organizations gets the list of organizations from governor

func (*Client) PermanentlyDeleteUserRecords added in v0.10.0

func (c *Client) PermanentlyDeleteUserRecords(ctx context.Context, userID string) error

PermanentlyDeleteUserRecords permanently deletes all records of a user that has been soft deleted this includes anonymizing the user record to remove PII data and deleting all audit logs associated with the user

func (*Client) RemoveGroupFromApplication

func (c *Client) RemoveGroupFromApplication(ctx context.Context, groupID, appID string) error

RemoveGroupFromApplication unlinks the group from the application

func (*Client) RemoveGroupFromOrganization

func (c *Client) RemoveGroupFromOrganization(ctx context.Context, groupID, orgID string) error

RemoveGroupFromOrganization unlinks the group from the organization

func (*Client) RemoveGroupMember

func (c *Client) RemoveGroupMember(ctx context.Context, groupID, userID string) error

RemoveGroupMember removes a user from a group in governor

func (*Client) RemoveGroupMembershipRequest

func (c *Client) RemoveGroupMembershipRequest(ctx context.Context, groupID, requestID string) error

RemoveGroupMembershipRequest removes a user from a group in governor

func (*Client) SystemExtensionResource added in v0.2.0

func (c *Client) SystemExtensionResource(
	ctx context.Context, extensionSlug, erdSlugPlural, erdVersion, resourceID string, deleted bool,
) (*v1alpha1.ExtensionResource, error)

SystemExtensionResource fetches a system extension resource

func (*Client) SystemExtensionResources added in v0.2.0

func (c *Client) SystemExtensionResources(
	ctx context.Context, extensionSlug, erdSlugPlural, erdVersion string,
	deleted bool, queries map[string]string,
) ([]*v1alpha1.ExtensionResource, error)

SystemExtensionResources list all system resources

func (*Client) URL

func (c *Client) URL() string

URL returns the governor url

func (*Client) UpdateExtension added in v0.2.0

func (c *Client) UpdateExtension(
	ctx context.Context, idOrSlug string, exReq *v1alpha1.ExtensionReq,
) (*v1alpha1.Extension, error)

UpdateExtension updates an extension

func (*Client) UpdateExtensionResource added in v0.11.0

func (c *Client) UpdateExtensionResource(
	ctx context.Context, resource *v1alpha1.ExtensionResource, id string,
) (*v1alpha1.ExtensionResource, error)

func (*Client) UpdateExtensionResourceDefinition added in v0.2.0

func (c *Client) UpdateExtensionResourceDefinition(
	ctx context.Context, extensionIDOrSlug, erdIDOrSlug, erdVersion string, erdReq *v1alpha1.ExtensionResourceDefinitionReq,
) (*v1alpha1.ExtensionResourceDefinition, error)

UpdateExtensionResourceDefinition updates an ERD, erd version must be provided when using erd slug

func (*Client) UpdateGroupMember added in v0.1.7

func (c *Client) UpdateGroupMember(ctx context.Context, groupID, userID string, admin bool) error

UpdateGroupMember updates a group membership in governor

func (*Client) UpdateMemberGroup added in v0.1.3

func (c *Client) UpdateMemberGroup(ctx context.Context, parentGroupID, memberGroupID string, expiresAt null.Time) error

UpdateMemberGroup updates the expiration on a group hierarchy relationship in governor

func (*Client) UpdateNotificationTarget added in v0.1.5

func (c *Client) UpdateNotificationTarget(
	ctx context.Context, idOrSlug string, ntReq *v1alpha1.NotificationTargetReq,
) (*v1alpha1.NotificationTarget, error)

UpdateNotificationTarget updates a notification target

func (*Client) UpdateNotificationType added in v0.1.5

func (c *Client) UpdateNotificationType(
	ctx context.Context, idOrSlug string, ntReq *v1alpha1.NotificationTypeReq,
) (*v1alpha1.NotificationType, error)

UpdateNotificationType updates a notification type

func (*Client) UpdateUser

func (c *Client) UpdateUser(ctx context.Context, id string, user *v1alpha1.UserReq) (*v1alpha1.User, error)

UpdateUser updates a user in governor and returns the user

func (*Client) UpdateUserExtensionResource added in v0.2.0

func (c *Client) UpdateUserExtensionResource(
	ctx context.Context, userID, extensionSlug, erdSlugPlural, erdVersion, resourceID string,
	resource interface{},
) (*v1alpha1.UserExtensionResource, error)

UpdateUserExtensionResource updates a user extension resource

func (*Client) User

func (c *Client) User(ctx context.Context, id string, deleted bool) (*v1alpha1.User, error)

User gets the details of a user from governor when deleted is true it will return information about a deleted user

func (*Client) UserExtensionResource added in v0.2.0

func (c *Client) UserExtensionResource(
	ctx context.Context, userID, extensionSlug, erdSlugPlural, erdVersion, resourceID string,
	deleted bool,
) (*v1alpha1.UserExtensionResource, error)

UserExtensionResource fetches a user extension resource

func (*Client) UserExtensionResources added in v0.2.0

func (c *Client) UserExtensionResources(
	ctx context.Context, userID, extensionSlug, erdSlugPlural, erdVersion string,
	deleted bool, queries map[string]string,
) ([]*v1alpha1.UserExtensionResource, error)

UserExtensionResources lists all user extension resources for a user

func (*Client) Users

func (c *Client) Users(ctx context.Context, deleted bool) ([]*v1alpha1.User, error)

Users gets the list of users from governor when deleted is true it will also return deleted users

func (*Client) UsersQuery

func (c *Client) UsersQuery(ctx context.Context, query map[string][]string) ([]*v1alpha1.User, error)

UsersQuery searches for a user in governor with the passed query

func (*Client) UsersQueryV2

func (c *Client) UsersQueryV2(ctx context.Context, query map[string][]string) (*v1beta1.PaginationResponse[*v1beta1.User], error)

UsersQueryV2 searches for users in governor with the passed query

func (*Client) UsersV2

func (c *Client) UsersV2(ctx context.Context, queryParams map[string][]string) ([]*v1beta1.User, error)

UsersV2 gets the list of users from governor using paginated api

type Option

type Option func(r *Client)

Option is a functional configuration option

func WithClientCredentialConfig deprecated

func WithClientCredentialConfig(c *clientcredentials.Config) Option

WithClientCredentialConfig sets the oauth client credential config

Deprecated: use WithTokenSource instead

func WithHTTPClient

func WithHTTPClient(c *http.Client) Option

WithHTTPClient overrides the default http client

func WithLogger

func WithLogger(l *zap.Logger) Option

WithLogger sets logger

func WithTokenSource added in v0.14.0

func WithTokenSource(ts oauth2.TokenSource) Option

WithTokenSource set the oauth token source

func WithURL

func WithURL(u string) Option

WithURL sets the governor API URL

Jump to

Keyboard shortcuts

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