client

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2024 License: Apache-2.0 Imports: 18 Imported by: 2

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

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) 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) CreateSystemExtensionResource added in v0.2.0

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

CreateSystemExtensionResource creates a system extension resource

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

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

Organizations gets the list of organizations from governor

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.SystemExtensionResource, 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,
) ([]*v1alpha1.SystemExtensionResource, 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) 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) UpdateSystemExtensionResource added in v0.2.0

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

UpdateSystemExtensionResource updates a system extension resource

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,
) ([]*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 HTTPDoer

type HTTPDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

HTTPDoer implements the standard http.Client interface.

type Option

type Option func(r *Client)

Option is a functional configuration option

func WithClientCredentialConfig

func WithClientCredentialConfig(c *clientcredentials.Config) Option

WithClientCredentialConfig sets the oauth client credential config

func WithHTTPClient

func WithHTTPClient(c HTTPDoer) Option

WithHTTPClient overrides the default http client

func WithLogger

func WithLogger(l *zap.Logger) Option

WithLogger sets logger

func WithURL

func WithURL(u string) Option

WithURL sets the governor API URL

type Tokener

type Tokener interface {
	Token(ctx context.Context) (*oauth2.Token, error)
}

Tokener implements the token interface

Jump to

Keyboard shortcuts

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