Documentation
¶
Index ¶
- Constants
- func WithConfluenceRatelimitData(resource *v2.RateLimitDescription) uhttp.DoOption
- type AddSpacePermissionGroupBody
- type AddSpacePermissionUserBody
- type ConfluenceClient
- func (c *ConfluenceClient) AddGroupMember(ctx context.Context, username string, groupName string) (*v2.RateLimitDescription, error)
- func (c *ConfluenceClient) AddSpace(ctx context.Context, key string, name string, description string) (*v2.RateLimitDescription, error)
- func (c *ConfluenceClient) CreateUser(ctx context.Context, username, email, fullName, password string) (string, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) GetGroupsByUserKey(ctx context.Context, pageToken string, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
- func (c *ConfluenceClient) GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error)
- func (c *ConfluenceClient) RemoveGroupMember(ctx context.Context, username string, groupName string) (*v2.RateLimitDescription, error)
- func (c *ConfluenceClient) RemoveSpace(ctx context.Context, key string) (*v2.RateLimitDescription, error)
- func (c *ConfluenceClient) UpdateSpacePermissions(ctx context.Context, operations []PermissionOperation, ...) (*v2.RateLimitDescription, error)
- func (c *ConfluenceClient) Verify(ctx context.Context) error
- type ConfluenceGroup
- type ConfluenceService
- type ConfluenceServiceImpl
- func (s *ConfluenceServiceImpl) AddGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) CreateUser(ctx context.Context, username, email, fullname, password string) (string, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) GetGroupsByUserKey(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
- func (s *ConfluenceServiceImpl) GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) RemoveGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
- func (s *ConfluenceServiceImpl) UpdateSpacePermissions(ctx context.Context, currentOperations []PermissionOperation, spaceKey string, ...) (*v2.RateLimitDescription, error)
- type ConfluenceSpace
- type ConfluenceSpaceDescription
- type ConfluenceSpaceDescriptionValue
- type ConfluenceSpaceEntitlement
- type ConfluenceSpacePermission
- type ConfluenceUser
- type MockConfluenceService
- func (m *MockConfluenceService) AddGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
- func (m *MockConfluenceService) CreateUser(ctx context.Context, username string, email string, fullname string, ...) (string, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) GetGroupsByUserKey(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
- func (m *MockConfluenceService) GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error)
- func (m *MockConfluenceService) RemoveGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
- func (m *MockConfluenceService) UpdateSpacePermissions(ctx context.Context, currentOperations []PermissionOperation, spaceKey string, ...) (*v2.RateLimitDescription, error)
- type PermissionOperation
- type PermissionSubject
- type PermissionType
Constants ¶
const (
ResourcesPageSize = 100
)
Variables ¶
This section is empty.
Functions ¶
func WithConfluenceRatelimitData ¶
func WithConfluenceRatelimitData(resource *v2.RateLimitDescription) uhttp.DoOption
WithConfluenceRatelimitData Per the docs: transient 5XX errors should be treated as 429/too-many-requests if they have a retry header. 503 errors were the only ones explicitly called out, but I guess it's possible for others too https://developer.atlassian.com/cloud/confluence/rate-limiting/
Types ¶
type AddSpacePermissionGroupBody ¶
type AddSpacePermissionGroupBody struct { GroupName string `json:"groupName"` Operations []PermissionOperation `json:"operations"` }
type AddSpacePermissionUserBody ¶
type AddSpacePermissionUserBody struct { UserKey string `json:"userKey"` Operations []PermissionOperation `json:"operations"` }
type ConfluenceClient ¶
type ConfluenceClient struct {
// contains filtered or unexported fields
}
func NewConfluenceClient ¶
func (*ConfluenceClient) AddGroupMember ¶
func (c *ConfluenceClient) AddGroupMember( ctx context.Context, username string, groupName string, ) ( *v2.RateLimitDescription, error, )
AddGroupMember makes an idempotent PUT call.
func (*ConfluenceClient) AddSpace ¶
func (c *ConfluenceClient) AddSpace( ctx context.Context, key string, name string, description string, ) ( *v2.RateLimitDescription, error, )
AddSpace makes an idempotent PUT call.
func (*ConfluenceClient) CreateUser ¶ added in v0.0.9
func (c *ConfluenceClient) CreateUser(ctx context.Context, username, email, fullName, password string) (string, *v2.RateLimitDescription, error)
func (*ConfluenceClient) GetGroups ¶
func (c *ConfluenceClient) GetGroups( ctx context.Context, pageToken string, ) ( []ConfluenceGroup, string, *v2.RateLimitDescription, error, )
GetGroups uses pagination to get a list of groups from the global list.
func (*ConfluenceClient) GetGroupsByUserKey ¶ added in v0.0.7
func (c *ConfluenceClient) GetGroupsByUserKey( ctx context.Context, pageToken string, userKey string, ) ( []ConfluenceGroup, string, *v2.RateLimitDescription, error, )
GetGroupsByUserKey uses pagination to get a list of groups that a given user is member of.
func (*ConfluenceClient) GetSpacePermissions ¶
func (c *ConfluenceClient) GetSpacePermissions( ctx context.Context, spaceKey string, ) ( []ConfluenceSpacePermission, *v2.RateLimitDescription, error, )
func (*ConfluenceClient) GetSpaces ¶
func (c *ConfluenceClient) GetSpaces( ctx context.Context, pageToken string, ) ( []ConfluenceSpace, string, *v2.RateLimitDescription, error, )
GetSpaces uses pagination to get a list of spaces from the global list.
func (*ConfluenceClient) GetUserByKey ¶
func (c *ConfluenceClient) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
func (*ConfluenceClient) GetUsers ¶
func (c *ConfluenceClient) GetUsers( ctx context.Context, pageToken string, ) ( []ConfluenceUser, string, *v2.RateLimitDescription, error, )
GetUsers uses pagination to get a list of users from the global list.
func (*ConfluenceClient) RemoveGroupMember ¶
func (c *ConfluenceClient) RemoveGroupMember( ctx context.Context, username string, groupName string, ) ( *v2.RateLimitDescription, error, )
func (*ConfluenceClient) RemoveSpace ¶
func (c *ConfluenceClient) RemoveSpace( ctx context.Context, key string, ) ( *v2.RateLimitDescription, error, )
func (*ConfluenceClient) UpdateSpacePermissions ¶
func (c *ConfluenceClient) UpdateSpacePermissions(ctx context.Context, operations []PermissionOperation, spaceKey, userKey, groupName string) (*v2.RateLimitDescription, error)
type ConfluenceGroup ¶
type ConfluenceService ¶ added in v0.0.7
type ConfluenceService interface { GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error) GetGroupsByUserKey(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error) UpdateSpacePermissions(ctx context.Context, currentOperations []PermissionOperation, spaceKey string, userKey string, groupName string) (*v2.RateLimitDescription, error) AddGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error) RemoveGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error) CreateUser(ctx context.Context, username string, email string, fullname string, password string) (string, *v2.RateLimitDescription, error) }
ConfluenceService defines the interface for group operations.
func NewConfluenceService ¶ added in v0.0.7
func NewConfluenceService(client ConfluenceClient) ConfluenceService
type ConfluenceServiceImpl ¶ added in v0.0.7
type ConfluenceServiceImpl struct {
// contains filtered or unexported fields
}
ConfluenceServiceImpl is the default implementation that calls the actual API.
func (*ConfluenceServiceImpl) AddGroupMember ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) AddGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) CreateUser ¶ added in v0.0.9
func (s *ConfluenceServiceImpl) CreateUser(ctx context.Context, username, email, fullname, password string) (string, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) GetGroups ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) GetGroupsByUserKey ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetGroupsByUserKey(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) GetSpacePermissions ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) GetSpaces ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) GetUserByKey ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
func (*ConfluenceServiceImpl) GetUsers ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) RemoveGroupMember ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) RemoveGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
func (*ConfluenceServiceImpl) UpdateSpacePermissions ¶ added in v0.0.7
func (s *ConfluenceServiceImpl) UpdateSpacePermissions( ctx context.Context, currentOperations []PermissionOperation, spaceKey string, userKey string, groupName string, ) (*v2.RateLimitDescription, error)
type ConfluenceSpace ¶
type ConfluenceSpace struct { Id int `json:"id"` Description ConfluenceSpaceDescription `json:"description"` Key string `json:"key"` Name string `json:"name"` Type string `json:"type"` }
type ConfluenceSpaceDescription ¶
type ConfluenceSpaceDescription struct {
Plain ConfluenceSpaceDescriptionValue `json:"plain"`
}
type ConfluenceSpacePermission ¶
type ConfluenceSpacePermission struct { Operation PermissionOperation `json:"operation,omitempty"` Subject PermissionSubject `json:"subject,omitempty"` SpaceKey string `json:"spaceKey,omitempty"` }
type ConfluenceUser ¶
type MockConfluenceService ¶ added in v0.0.7
type MockConfluenceService struct { GetUsersFunc func(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error) GetUserByKeyFunc func(ctx context.Context, userKey string) (*ConfluenceUser, error) GetGroupsFunc func(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error) GetGroupsByUserKeyFunc func(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error) GetSpacesFunc func(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error) GetSpacePermissionsFunc func(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error) UpdateSpacePermissionsFunc func(ctx context.Context, currentOperations []PermissionOperation, spaceKey string, userKey string, groupName string) (*v2.RateLimitDescription, error) AddGroupMemberFunc func(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error) RemoveGroupMemberFunc func(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error) CreateUserFunc func(ctx context.Context, username string, email string, fullname string, password string) (string, *v2.RateLimitDescription, error) }
MockConfluenceService is a mock implementation of the ConfluenceService interface for testing.
func (*MockConfluenceService) AddGroupMember ¶ added in v0.0.7
func (m *MockConfluenceService) AddGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
func (*MockConfluenceService) CreateUser ¶ added in v0.0.9
func (*MockConfluenceService) GetGroups ¶ added in v0.0.7
func (m *MockConfluenceService) GetGroups(ctx context.Context, pageToken string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
func (*MockConfluenceService) GetGroupsByUserKey ¶ added in v0.0.7
func (m *MockConfluenceService) GetGroupsByUserKey(ctx context.Context, pageToken, userKey string) ([]ConfluenceGroup, string, *v2.RateLimitDescription, error)
func (*MockConfluenceService) GetSpacePermissions ¶ added in v0.0.7
func (m *MockConfluenceService) GetSpacePermissions(ctx context.Context, spaceKey string) ([]ConfluenceSpacePermission, *v2.RateLimitDescription, error)
func (*MockConfluenceService) GetSpaces ¶ added in v0.0.7
func (m *MockConfluenceService) GetSpaces(ctx context.Context, pageToken string) ([]ConfluenceSpace, string, *v2.RateLimitDescription, error)
func (*MockConfluenceService) GetUserByKey ¶ added in v0.0.7
func (m *MockConfluenceService) GetUserByKey(ctx context.Context, userKey string) (*ConfluenceUser, error)
func (*MockConfluenceService) GetUsers ¶ added in v0.0.7
func (m *MockConfluenceService) GetUsers(ctx context.Context, pageToken string) ([]ConfluenceUser, string, *v2.RateLimitDescription, error)
func (*MockConfluenceService) RemoveGroupMember ¶ added in v0.0.7
func (m *MockConfluenceService) RemoveGroupMember(ctx context.Context, userKey, groupName string) (*v2.RateLimitDescription, error)
func (*MockConfluenceService) UpdateSpacePermissions ¶ added in v0.0.7
func (m *MockConfluenceService) UpdateSpacePermissions( ctx context.Context, currentOperations []PermissionOperation, spaceKey string, userKey string, groupName string, ) (*v2.RateLimitDescription, error)
type PermissionOperation ¶
type PermissionSubject ¶
type PermissionSubject struct { Type PermissionType `json:"type,omitempty"` // For groups: Name string `json:"name,omitempty"` // For users: UserKey string `json:"userKey,omitempty"` // For others: DisplayName string `json:"displayName,omitempty"` }
PermissionSubject can be one of several types of resources. The ones we care about are: user (type: "user") or a group (type: "group").
type PermissionType ¶
type PermissionType string
const ( PermissionTypeUser PermissionType = "user" PermissionTypeGroup PermissionType = "group" )