Documentation
¶
Index ¶
- Variables
- func GetExpandableAnnotation(annos annotations.Annotations) (*v2.GrantExpandable, error)
- func GetExternalResourceMatchAllAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchAll, error)
- func GetExternalResourceMatchAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatch, error)
- func GetExternalResourceMatchIDAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchID, error)
- type Action
- type ActionOp
- type Progress
- type ProgressCounts
- func (p *ProgressCounts) LogEntitlementsProgress(ctx context.Context, resourceType string)
- func (p *ProgressCounts) LogExpandProgress(ctx context.Context, actions []*expand.EntitlementGraphAction)
- func (p *ProgressCounts) LogGrantsProgress(ctx context.Context, resourceType string)
- func (p *ProgressCounts) LogResourceTypesProgress(ctx context.Context)
- func (p *ProgressCounts) LogResourcesProgress(ctx context.Context, resourceType string)
- type State
- type SyncOpt
- func WithC1ZPath(path string) SyncOpt
- func WithConnectorStore(store connectorstore.Writer) SyncOpt
- func WithDontExpandGrants() SyncOpt
- func WithExternalResourceC1ZPath(path string) SyncOpt
- func WithExternalResourceEntitlementIdFilter(entitlementId string) SyncOpt
- func WithOnlyExpandGrants() SyncOpt
- func WithProgressHandler(f func(s *Progress)) SyncOpt
- func WithRunDuration(d time.Duration) SyncOpt
- func WithSessionStore(sessionStore sessions.SetSessionStore) SyncOpt
- func WithSkipEntitlementsAndGrants(skip bool) SyncOpt
- func WithSkipFullSync() SyncOpt
- func WithSkipGrants(skip bool) SyncOpt
- func WithSyncID(syncID string) SyncOpt
- func WithSyncResourceTypes(resourceTypeIDs []string) SyncOpt
- func WithTargetedSyncResources(resources []*v2.Resource) SyncOpt
- func WithTmpDir(path string) SyncOpt
- func WithTransitionHandler(f func(s Action)) SyncOpt
- type Syncer
Constants ¶
This section is empty.
Variables ¶
var ErrSyncNotComplete = fmt.Errorf("sync exited without finishing")
Functions ¶
func GetExpandableAnnotation ¶ added in v0.2.92
func GetExpandableAnnotation(annos annotations.Annotations) (*v2.GrantExpandable, error)
func GetExternalResourceMatchAllAnnotation ¶ added in v0.2.84
func GetExternalResourceMatchAllAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchAll, error)
func GetExternalResourceMatchAnnotation ¶ added in v0.2.84
func GetExternalResourceMatchAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatch, error)
func GetExternalResourceMatchIDAnnotation ¶ added in v0.2.90
func GetExternalResourceMatchIDAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchID, error)
Types ¶
type Action ¶
type Action struct {
Op ActionOp `json:"operation,omitempty"`
PageToken string `json:"page_token,omitempty"`
ResourceTypeID string `json:"resource_type_id,omitempty"`
ResourceID string `json:"resource_id,omitempty"`
ParentResourceTypeID string `json:"parent_resource_type_id,omitempty"`
ParentResourceID string `json:"parent_resource_id,omitempty"`
}
Action stores the current operation, page token, and optional fields for which resource is being worked with.
type ActionOp ¶
type ActionOp uint8
ActionOp represents a sync operation.
const ( UnknownOp ActionOp = iota InitOp SyncResourceTypesOp SyncResourcesOp SyncEntitlementsOp ListResourcesForEntitlementsOp SyncGrantsOp SyncExternalResourcesOp SyncAssetsOp SyncGrantExpansionOp SyncTargetedResourceOp SyncStaticEntitlementsOp )
Do not change the order of these constants, and only append new ones at the end. Otherwise resuming a sync started by an older version of baton-sdk will cause very strange behavior.
func (*ActionOp) MarshalJSON ¶
MarshalJSON marshals the ActionOp into a json string.
func (ActionOp) String ¶
String() returns the string representation for an ActionOp. This is used for marshalling the op.
func (*ActionOp) UnmarshalJSON ¶
UnmarshalJSON unmarshals the input byte slice and updates this action op.
type Progress ¶ added in v0.0.25
type Progress struct {
Action string
ResourceTypeID string
ResourceID string
ParentResourceTypeID string
ParentResourceID string
Count uint32
}
func NewProgress ¶ added in v0.0.25
type ProgressCounts ¶ added in v0.2.58
type ProgressCounts struct {
ResourceTypes int
Resources map[string]int
EntitlementsProgress map[string]int
LastEntitlementLog map[string]time.Time
GrantsProgress map[string]int
LastGrantLog map[string]time.Time
LastActionLog time.Time
}
func NewProgressCounts ¶ added in v0.2.58
func NewProgressCounts() *ProgressCounts
TODO: use a mutex or a syncmap for when this code becomes parallel
func (*ProgressCounts) LogEntitlementsProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogEntitlementsProgress(ctx context.Context, resourceType string)
func (*ProgressCounts) LogExpandProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogExpandProgress(ctx context.Context, actions []*expand.EntitlementGraphAction)
func (*ProgressCounts) LogGrantsProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogGrantsProgress(ctx context.Context, resourceType string)
func (*ProgressCounts) LogResourceTypesProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogResourceTypesProgress(ctx context.Context)
func (*ProgressCounts) LogResourcesProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogResourcesProgress(ctx context.Context, resourceType string)
type State ¶
type State interface {
PushAction(ctx context.Context, action Action)
FinishAction(ctx context.Context)
NextPage(ctx context.Context, pageToken string) error
ResourceTypeID(ctx context.Context) string
ResourceID(ctx context.Context) string
EntitlementGraph(ctx context.Context) *expand.EntitlementGraph
ClearEntitlementGraph(ctx context.Context)
ParentResourceID(ctx context.Context) string
ParentResourceTypeID(ctx context.Context) string
PageToken(ctx context.Context) string
Current() *Action
Marshal() (string, error)
Unmarshal(input string) error
NeedsExpansion() bool
SetNeedsExpansion()
HasExternalResourcesGrants() bool
SetHasExternalResourcesGrants()
ShouldFetchRelatedResources() bool
SetShouldFetchRelatedResources()
ShouldSkipEntitlementsAndGrants() bool
SetShouldSkipEntitlementsAndGrants()
ShouldSkipGrants() bool
SetShouldSkipGrants()
GetCompletedActionsCount() uint64
}
type SyncOpt ¶
type SyncOpt func(s *syncer)
func WithC1ZPath ¶ added in v0.1.0
func WithConnectorStore ¶ added in v0.1.0
func WithConnectorStore(store connectorstore.Writer) SyncOpt
func WithDontExpandGrants ¶ added in v0.3.48
func WithDontExpandGrants() SyncOpt
func WithExternalResourceC1ZPath ¶ added in v0.2.84
func WithExternalResourceEntitlementIdFilter ¶ added in v0.2.84
func WithOnlyExpandGrants ¶ added in v0.3.8
func WithOnlyExpandGrants() SyncOpt
func WithProgressHandler ¶ added in v0.0.25
WithProgress sets a `progressHandler` for `NewSyncer` Options.
func WithRunDuration ¶
WithRunDuration sets a `time.Duration` for `NewSyncer` Options. `d` represents a duration. The elapsed time between two instants as an int64 nanosecond count.
func WithSessionStore ¶ added in v0.5.0
func WithSessionStore(sessionStore sessions.SetSessionStore) SyncOpt
func WithSkipEntitlementsAndGrants ¶ added in v0.3.40
func WithSkipFullSync ¶ added in v0.2.15
func WithSkipFullSync() SyncOpt
func WithSkipGrants ¶ added in v0.5.1
func WithSyncID ¶ added in v0.3.8
func WithSyncResourceTypes ¶ added in v0.5.0
func WithTargetedSyncResources ¶ added in v0.6.6
func WithTmpDir ¶ added in v0.1.8
func WithTransitionHandler ¶
WithTransitionHandler sets a `transitionHandler` for `NewSyncer` Options.