servicedef

package
v2.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package servicedef contains definitions for the REST protocol that test services must implement. See the top-level README.md for more details.

The package is used by the test harness, but can also be imported by any test service code that is Go-based.

Index

Constants

View Source
const (
	CommandEvaluateFlag             = "evaluate"
	CommandEvaluateAllFlags         = "evaluateAll"
	CommandIdentifyEvent            = "identifyEvent"
	CommandCustomEvent              = "customEvent"
	CommandAliasEvent               = "aliasEvent"
	CommandFlushEvents              = "flushEvents"
	CommandGetBigSegmentStoreStatus = "getBigSegmentStoreStatus"
	CommandContextBuild             = "contextBuild"
	CommandContextConvert           = "contextConvert"
	CommandSecureModeHash           = "secureModeHash"
)
View Source
const (
	ValueTypeBool   = "bool"
	ValueTypeInt    = "int"
	ValueTypeDouble = "double"
	ValueTypeString = "string"
	ValueTypeAny    = "any"
)
View Source
const (
	CapabilityClientSide    = "client-side"
	CapabilityServerSide    = "server-side"
	CapabilityStronglyTyped = "strongly-typed"
	CapabilityMobile        = "mobile"
	CapabilityPHP           = "php"
	CapabilityRoku          = "roku"
	CapabilitySingleton     = "singleton"

	CapabilityAllFlagsWithReasons                = "all-flags-with-reasons"
	CapabilityAllFlagsClientSideOnly             = "all-flags-client-side-only"
	CapabilityAllFlagsDetailsOnlyForTrackedFlags = "all-flags-details-only-for-tracked-flags"

	CapabilityBigSegments       = "big-segments"
	CapabilityContextType       = "context-type"
	CapabilitySecureModeHash    = "secure-mode-hash"
	CapabilityServerSidePolling = "server-side-polling"
	CapabilityServiceEndpoints  = "service-endpoints"
	CapabilityTags              = "tags"
	CapabilityUserType          = "user-type"
	CapabilityFiltering         = "filtering"
	CapabilityAutoEnvAttributes = "auto-env-attributes"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BigSegmentStoreStatusResponse

type BigSegmentStoreStatusResponse struct {
	Available bool `json:"available"`
	Stale     bool `json:"stale"`
}

type CommandParams

type CommandParams struct {
	Command        string                          `json:"command"`
	Evaluate       o.Maybe[EvaluateFlagParams]     `json:"evaluate,omitempty"`
	EvaluateAll    o.Maybe[EvaluateAllFlagsParams] `json:"evaluateAll,omitempty"`
	CustomEvent    o.Maybe[CustomEventParams]      `json:"customEvent,omitempty"`
	IdentifyEvent  o.Maybe[IdentifyEventParams]    `json:"identifyEvent,omitempty"`
	ContextBuild   o.Maybe[ContextBuildParams]     `json:"contextBuild,omitempty"`
	ContextConvert o.Maybe[ContextConvertParams]   `json:"contextConvert,omitempty"`
	SecureModeHash o.Maybe[SecureModeHashParams]   `json:"secureModeHash,omitempty"`
}

type ContextBuildParams

type ContextBuildParams struct {
	Single *ContextBuildSingleParams  `json:"single,omitempty"`
	Multi  []ContextBuildSingleParams `json:"multi,omitempty"`
}

type ContextBuildResponse

type ContextBuildResponse struct {
	Output string `json:"output"`
	Error  string `json:"error"`
}

type ContextBuildSingleParams

type ContextBuildSingleParams struct {
	Kind      *string                  `json:"kind,omitempty"`
	Key       string                   `json:"key"`
	Name      *string                  `json:"name,omitempty"`
	Anonymous *bool                    `json:"anonymous,omitempty"`
	Private   []string                 `json:"private,omitempty"`
	Custom    map[string]ldvalue.Value `json:"custom,omitempty"`
}

type ContextConvertParams

type ContextConvertParams struct {
	Input string `json:"input"`
}

type CreateInstanceParams

type CreateInstanceParams struct {
	Configuration SDKConfigParams `json:"configuration"`
	Tag           string          `json:"tag"`
}

type CustomEventParams

type CustomEventParams struct {
	EventKey     string                     `json:"eventKey"`
	Context      o.Maybe[ldcontext.Context] `json:"context,omitempty"`
	User         json.RawMessage            `json:"user,omitempty"`
	Data         ldvalue.Value              `json:"data,omitempty"`
	OmitNullData bool                       `json:"omitNullData"`
	MetricValue  o.Maybe[float64]           `json:"metricValue,omitempty"`
}

type EvaluateAllFlagsParams

type EvaluateAllFlagsParams struct {
	Context                    o.Maybe[ldcontext.Context] `json:"context,omitempty"`
	User                       json.RawMessage            `json:"user,omitempty"`
	WithReasons                bool                       `json:"withReasons"`
	ClientSideOnly             bool                       `json:"clientSideOnly"`
	DetailsOnlyForTrackedFlags bool                       `json:"detailsOnlyForTrackedFlags"`
}

type EvaluateAllFlagsResponse

type EvaluateAllFlagsResponse struct {
	State map[string]ldvalue.Value `json:"state"`
}

type EvaluateFlagParams

type EvaluateFlagParams struct {
	FlagKey      string                     `json:"flagKey"`
	Context      o.Maybe[ldcontext.Context] `json:"context,omitempty"`
	User         json.RawMessage            `json:"user,omitempty"`
	ValueType    ValueType                  `json:"valueType"`
	DefaultValue ldvalue.Value              `json:"defaultValue"`
	Detail       bool                       `json:"detail"`
}

type EvaluateFlagResponse

type EvaluateFlagResponse struct {
	Value          ldvalue.Value                      `json:"value"`
	VariationIndex o.Maybe[int]                       `json:"variationIndex,omitempty"`
	Reason         o.Maybe[ldreason.EvaluationReason] `json:"reason,omitempty"`
}

type IdentifyEventParams

type IdentifyEventParams struct {
	Context o.Maybe[ldcontext.Context] `json:"context"`
	User    json.RawMessage            `json:"user,omitempty"`
}

type SDKConfigBigSegmentsParams

type SDKConfigBigSegmentsParams struct {
	CallbackURI          string                              `json:"callbackUri"`
	UserCacheSize        o.Maybe[int]                        `json:"userCacheSize,omitempty"`
	UserCacheTimeMS      o.Maybe[ldtime.UnixMillisecondTime] `json:"userCacheTimeMs,omitempty"`
	StatusPollIntervalMS o.Maybe[ldtime.UnixMillisecondTime] `json:"statusPollIntervalMs,omitempty"`
	StaleAfterMS         o.Maybe[ldtime.UnixMillisecondTime] `json:"staleAfterMs,omitempty"`
}

type SDKConfigClientSideParams

type SDKConfigClientSideParams struct {
	InitialContext               o.Maybe[ldcontext.Context] `json:"initialContext,omitempty"`
	InitialUser                  json.RawMessage            `json:"initialUser,omitempty"`
	EvaluationReasons            o.Maybe[bool]              `json:"evaluationReasons,omitempty"`
	UseReport                    o.Maybe[bool]              `json:"useReport,omitempty"`
	IncludeEnvironmentAttributes o.Maybe[bool]              `json:"includeEnvironmentAttributes,omitempty"`
}

type SDKConfigEventParams

type SDKConfigEventParams struct {
	BaseURI                 string                              `json:"baseUri,omitempty"`
	Capacity                o.Maybe[int]                        `json:"capacity,omitempty"`
	EnableDiagnostics       bool                                `json:"enableDiagnostics"`
	AllAttributesPrivate    bool                                `json:"allAttributesPrivate,omitempty"`
	GlobalPrivateAttributes []string                            `json:"globalPrivateAttributes,omitempty"`
	FlushIntervalMS         o.Maybe[ldtime.UnixMillisecondTime] `json:"flushIntervalMs,omitempty"`
}

type SDKConfigParams

type SDKConfigParams struct {
	Credential          string                                      `json:"credential"`
	StartWaitTimeMS     o.Maybe[ldtime.UnixMillisecondTime]         `json:"startWaitTimeMs,omitempty"`
	InitCanFail         bool                                        `json:"initCanFail,omitempty"`
	ServiceEndpoints    o.Maybe[SDKConfigServiceEndpointsParams]    `json:"serviceEndpoints,omitempty"`
	Streaming           o.Maybe[SDKConfigStreamingParams]           `json:"streaming,omitempty"`
	Polling             o.Maybe[SDKConfigPollingParams]             `json:"polling,omitempty"`
	Events              o.Maybe[SDKConfigEventParams]               `json:"events,omitempty"`
	PersistentDataStore o.Maybe[SDKConfigPersistentDataStoreParams] `json:"persistentDataStore,omitempty"`
	BigSegments         o.Maybe[SDKConfigBigSegmentsParams]         `json:"bigSegments,omitempty"`
	Tags                o.Maybe[SDKConfigTagsParams]                `json:"tags,omitempty"`
	ClientSide          o.Maybe[SDKConfigClientSideParams]          `json:"clientSide,omitempty"`
}

type SDKConfigPersistentDataStoreParams

type SDKConfigPersistentDataStoreParams struct {
	CallbackURI string `json:"callbackURI"`
}

type SDKConfigPollingParams

type SDKConfigPollingParams struct {
	BaseURI        string                              `json:"baseUri,omitempty"`
	PollIntervalMS o.Maybe[ldtime.UnixMillisecondTime] `json:"pollIntervalMs,omitempty"`
	Filter         o.Maybe[string]                     `json:"filter,omitempty"`
}

type SDKConfigServiceEndpointsParams

type SDKConfigServiceEndpointsParams struct {
	Streaming string `json:"streaming,omitempty"`
	Polling   string `json:"polling,omitempty"`
	Events    string `json:"events,omitempty"`
}

type SDKConfigStreamingParams

type SDKConfigStreamingParams struct {
	BaseURI             string                              `json:"baseUri,omitempty"`
	InitialRetryDelayMS o.Maybe[ldtime.UnixMillisecondTime] `json:"initialRetryDelayMs,omitempty"`
	Filter              o.Maybe[string]                     `json:"filter,omitempty"`
}

type SDKConfigTagsParams

type SDKConfigTagsParams struct {
	ApplicationID      o.Maybe[string] `json:"applicationId,omitempty"`
	ApplicationVersion o.Maybe[string] `json:"applicationVersion,omitempty"`
}

type SecureModeHashParams

type SecureModeHashParams struct {
	Context o.Maybe[ldcontext.Context] `json:"context,omitempty"`
	User    json.RawMessage            `json:"user,omitempty"`
}

type SecureModeHashResponse

type SecureModeHashResponse struct {
	Result string `json:"result"`
}

type StatusRep

type StatusRep struct {
	harness.TestServiceInfo
	ClientVersion string `json:"clientVersion"`
}

type ValueType

type ValueType string

Directories

Path Synopsis
Package callbackfixtures contains definitions for the REST protocol that test services must implement, specifically for callback requests from the test service to the test harness.
Package callbackfixtures contains definitions for the REST protocol that test services must implement, specifically for callback requests from the test service to the test harness.

Jump to

Keyboard shortcuts

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