omics

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2026 License: MIT Imports: 25 Imported by: 0

README

HealthOmics

Parity grade: A · SDK aws-sdk-go-v2/service/omics@v1.49.5 · last audited 2026-09-04

Coverage

Metric Value
Feature families 25 (25 ok)
Known gaps 3
Deferred items 1
Resource leaks clean
Known gaps
  • CLOSED 2026-08-07 (gopherstack-hnhk): RunBatch's real body shape is now modeled and StartRunBatch creates its constituent runs -- see the RunBatch family note above for the full accounting, including what's still not modeled (s3UriSettings, most optional DefaultRunSetting fields, RequestId idempotency dedup).
  • STALE CLAIM, CORRECTED 2026-08-23: this entry previously said ListAnnotationStores/ListVariantStores (status + ids), ListAnnotationStoreVersions (status), and ListShares (resourceArns/status/resourceTypes) don't apply their own real AWS filter/ids body fields. Re-verified against the pinned SDK and against this file's OWN neighboring op notes (which already document the fix, e.g. ListAnnotationStores's family note: 'ListAnnotationStores now applies its own status/ids filter... -- see AnnotationStoreVersion note'): all four filters are real, landed in PR #2417 (commit 69bbb940a, 2026-08-15, part of the same merge that fixed RAM/mq's accepted-then-ignored params) -- annotation_stores.go's ListAnnotationStores/ListAnnotationStoreVersions, variant_stores.go's ListVariantStores, and shares.go's ListShares each call storeMatchesFilter/shareMatchesFilter before including a row, and TestListAnnotationStores_Filters/TestListVariantStores_Filters/TestListAnnotationStoreVersions_FiltersByStatus/TestListShares_Filters all pass, asserting non-matching rows are excluded. This gap note simply never got marked CLOSED when the fix landed -- direction-1 stale claim (work described as open that is already done), not a re-discovery.
  • RunBatchFilter.RunGroupID (ListBatch) is accepted from the query string for wire compatibility but not applied -- this backend has no run-group-of-a-batch's-runs association. RunsInBatchFilter.SubmissionStatus (ListRunsInBatch) is likewise accepted but not applied -- this backend has no async submission-status state machine (batches complete submission synchronously). RunSettingID IS now applied (fixed this pass, see RunBatch family note).
Deferred
  • Field-by-field diff of ReferenceMetadata/ReadSetMetadata optional sub-object fields (Files/ReferenceFiles, CreationJobId, CreationType, Etag, SequenceInformation) against the SDK model -- MD5/fileType (top-level scalars) are now confirmed correct; the sub-objects remain unpopulated but are optional/pointer-safe on the wire

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotFound is returned when a resource does not exist.
	ErrNotFound = awserr.New(errResourceNotFound, awserr.ErrNotFound)
	// ErrAlreadyExists is returned when a resource already exists.
	ErrAlreadyExists = awserr.New(errConflict, awserr.ErrAlreadyExists)
	// ErrValidation is returned on invalid input.
	ErrValidation = awserr.New(errValidation, awserr.ErrInvalidParameter)
	// ErrInvalidState is returned when a resource is not in the state
	// required for the requested operation (e.g. deleting a RunBatch that
	// hasn't reached a terminal status).
	ErrInvalidState = awserr.New(errConflict, awserr.ErrConflict)
)
View Source
var ErrNilAppContext = errors.New("omics: nil app context")

ErrNilAppContext is returned when Init is called with a nil AppContext.

Functions

func WithRegion

func WithRegion(ctx context.Context, region string) context.Context

WithRegion returns a context with the given region set.

Types

type AnnotationImportItem

type AnnotationImportItem struct {
	Source string `json:"source"`
}

AnnotationImportItem is a source item for an annotation import job -- real types.AnnotationImportItemSource (types.go:91-99, omics@v1.49.5): Source only. This is StartAnnotationImportJobInput.Items' element shape, not the response shape GetAnnotationImportJobOutput.Items uses (see AnnotationImportItemDetail) -- the two are declared separately below rather than one struct serving both, the same trap the ID/jobId field already forced apart for this job type (c41d36cb6).

type AnnotationImportItemDetail added in v1.3.1

type AnnotationImportItemDetail struct {
	JobStatus string `json:"jobStatus"`
	Source    string `json:"source"`
}

AnnotationImportItemDetail is the real GetAnnotationImportJobOutput.Items element, types.AnnotationImportItemDetail (types.go:75-89): JobStatus and Source, both required. JobStatus is set once from the job's own Status at Start time (annotationImportItemDetails, annotation_stores.go): this backend completes import jobs synchronously in one step, so every item reaches its final status in that same step and there is no async window in which a stored per-item value could go stale.

gopherstack-7s8r assumed ListAnnotationImportJobs also returns this shape; it does not -- the real List element (AnnotationImportJobItem, types.go:102-146) has no Items field at all. See AnnotationImportJobSummary.

type AnnotationImportJob

type AnnotationImportJob struct {
	CreationTime         time.Time                    `json:"creationTime"`
	CompletionTime       *time.Time                   `json:"completionTime,omitempty"`
	UpdateTime           time.Time                    `json:"updateTime"`
	FormatOptions        map[string]any               `json:"formatOptions,omitempty"`
	AnnotationFields     map[string]string            `json:"annotationFields,omitempty"`
	ID                   string                       `json:"id"`
	DestinationName      string                       `json:"destinationName"`
	RoleARN              string                       `json:"roleArn"`
	Status               string                       `json:"status"`
	StatusMessage        string                       `json:"statusMessage"`
	VersionName          string                       `json:"versionName"`
	Items                []AnnotationImportItemDetail `json:"items"`
	RunLeftNormalization bool                         `json:"runLeftNormalization,omitempty"`
}

AnnotationImportJob is the real GetAnnotationImportJobOutput shape (deserializers.go:5949-6015) and this backend's persisted job record.

ID is tagged "id" -- the real GetAnnotationImportJobOutput/ AnnotationImportJobItem wire key (deserializers.go:5954) -- which is right for Get/List but wrong for StartAnnotationImportJobOutput, whose only field is "jobId" (deserializers.go:17434); the two ops don't share a response shape in the real API, so the start handler builds its own {"jobId": ...} response instead of marshaling this struct. ListAnnotationImportJobs doesn't marshal this struct either -- see AnnotationImportJobSummary.

FormatOptions/RunLeftNormalization/VersionName/StatusMessage/UpdateTime are real required GetAnnotationImportJobOutput members (deserializers.go:5949- 6015) that were previously absent from this struct entirely -- a schema gap, not a dropped key. FormatOptions mirrors the Reference/SseConfig/ StoreOptions convention (passthrough map, real shape is a tagged union of tsvOptions/vcfOptions). StatusMessage is always empty: this backend completes import jobs synchronously with no error state to describe.

type AnnotationImportJobSummary added in v1.3.1

type AnnotationImportJobSummary struct {
	CreationTime         time.Time         `json:"creationTime"`
	CompletionTime       *time.Time        `json:"completionTime,omitempty"`
	UpdateTime           time.Time         `json:"updateTime"`
	AnnotationFields     map[string]string `json:"annotationFields,omitempty"`
	ID                   string            `json:"id"`
	DestinationName      string            `json:"destinationName"`
	RoleARN              string            `json:"roleArn"`
	Status               string            `json:"status"`
	VersionName          string            `json:"versionName"`
	RunLeftNormalization bool              `json:"runLeftNormalization,omitempty"`
}

AnnotationImportJobSummary is the real ListAnnotationImportJobsOutput element, types.AnnotationImportJobItem (types.go:102-146). It is deliberately narrower than AnnotationImportJob/GetAnnotationImportJobOutput: no Items, FormatOptions or StatusMessage -- List and Get are not the same response shape in the real API, the same class of gap that already forced StartAnnotationImportJobOutput apart to a standalone {"jobId": ...} body.

type AnnotationStore

type AnnotationStore struct {
	CreationTime time.Time         `json:"creationTime"`
	UpdateTime   time.Time         `json:"updateTime"`
	Reference    map[string]any    `json:"reference,omitempty"`
	SseConfig    map[string]any    `json:"sseConfig,omitempty"`
	StoreOptions map[string]any    `json:"storeOptions,omitempty"`
	Tags         map[string]string `json:"tags"`
	StoreArn     string            `json:"storeArn"`
	ID           string            `json:"id"`
	Name         string            `json:"name"`
	Description  string            `json:"description"`
	StoreFormat  string            `json:"storeFormat"`
	Status       string            `json:"status"`
	// StatusMessage is real GetAnnotationStoreOutput's required
	// "statusMessage" (deserializers.go, GetAnnotationStore/
	// ListAnnotationStores) -- previously absent from this struct entirely,
	// the same gap fixed for import jobs in c41d36cb6 but missed here.
	// Always empty: this backend transitions store status synchronously
	// with no error state to describe.
	StatusMessage string `json:"statusMessage"`
	// NumVersions is real GetAnnotationStoreOutput's required "numVersions"
	// (deserializers.go:6225) -- computed live from annotationVersionsByStore
	// at read time (GetAnnotationStore/ListAnnotationStores), never stored,
	// since a stored counter would drift as versions are added/deleted.
	NumVersions int32 `json:"numVersions"`
	// StoreSizeBytes is real GetAnnotationStoreOutput's required
	// "storeSizeBytes" (deserializers.go:6289). This backend does not track
	// actual stored bytes -- always 0 rather than a fabricated number.
	StoreSizeBytes int64 `json:"storeSizeBytes"`
	// contains filtered or unexported fields
}

AnnotationStore represents an HealthOmics annotation store.

StoreArn is real GetAnnotationStoreOutput/AnnotationStoreItem wire key "storeArn" (omics@v1.49.5 deserializers.go:6266) -- this struct previously tagged it "arn", a key no real Get/ListAnnotationStores deserializer reads.

type AnnotationStoreSummary added in v1.3.1

type AnnotationStoreSummary struct {
	CreationTime   time.Time      `json:"creationTime"`
	UpdateTime     time.Time      `json:"updateTime"`
	Reference      map[string]any `json:"reference,omitempty"`
	SseConfig      map[string]any `json:"sseConfig,omitempty"`
	StoreArn       string         `json:"storeArn"`
	ID             string         `json:"id"`
	Name           string         `json:"name"`
	Description    string         `json:"description"`
	StoreFormat    string         `json:"storeFormat"`
	Status         string         `json:"status"`
	StatusMessage  string         `json:"statusMessage"`
	StoreSizeBytes int64          `json:"storeSizeBytes"`
}

AnnotationStoreSummary is the real ListAnnotationStoresOutput element shape (types.AnnotationStoreItem, omics@v1.49.5 types.go:152-211) -- narrower than GetAnnotationStoreOutput: no numVersions, storeOptions or tags. ListAnnotationStores previously marshaled AnnotationStore directly, leaking all three (gopherstack-dv4s).

type AnnotationStoreVersion

type AnnotationStoreVersion struct {
	CreationTime time.Time         `json:"creationTime"`
	UpdateTime   time.Time         `json:"updateTime"`
	Tags         map[string]string `json:"tags"`
	VersionArn   string            `json:"versionArn"`
	ID           string            `json:"id"`
	StoreID      string            `json:"storeId"`
	StoreName    string            `json:"name"`
	VersionName  string            `json:"versionName"`
	Description  string            `json:"description"`
	Status       string            `json:"status"`
	// StatusMessage is real GetAnnotationStoreVersionOutput's required
	// "statusMessage" -- previously absent from this struct entirely, the
	// same gap fixed for import jobs in c41d36cb6 but missed here. Always
	// empty: this backend transitions version status synchronously with no
	// error state to describe.
	StatusMessage string `json:"statusMessage"`
	// VersionSizeBytes is real GetAnnotationStoreVersionOutput's required
	// "versionSizeBytes" (deserializers.go:6587). This backend does not
	// track actual stored bytes -- always 0 rather than a fabricated number.
	VersionSizeBytes int64 `json:"versionSizeBytes"`
}

AnnotationStoreVersion represents a version of an annotation store.

VersionArn is real GetAnnotationStoreVersionOutput/AnnotationStoreVersionItem wire key "versionArn" (omics@v1.49.5 deserializers.go:6564) -- this struct previously tagged it "arn", a key no real deserializer for this shape reads.

ID and StoreName's tag are both gopherstack-r80d (batch 7) fixes: Get/Update/CreateAnnotationStoreVersionOutput each require a distinct "id" (the version's own generated ID, api_op_GetAnnotationStoreVersion.go:15-17, deserializers.go:6501) and "name" (the parent store's name, api_op_GetAnnotationStoreVersion.go:19-21, deserializers.go:6510) that this struct never tracked at all -- StoreName held the right value but the wrong wire key ("storeName", a key no real deserializer for this shape reads), and no field existed for "id" at all. Flagged but deliberately left unfixed by two prior passes (lx5h/kb66, dv4s) as "the opposite class" from what those passes targeted; this is exactly gopherstack-r80d's cut.

type AnnotationStoreVersionSummary added in v1.3.1

type AnnotationStoreVersionSummary struct {
	CreationTime     time.Time `json:"creationTime"`
	UpdateTime       time.Time `json:"updateTime"`
	VersionArn       string    `json:"versionArn"`
	ID               string    `json:"id"`
	StoreID          string    `json:"storeId"`
	StoreName        string    `json:"name"`
	VersionName      string    `json:"versionName"`
	Description      string    `json:"description"`
	Status           string    `json:"status"`
	StatusMessage    string    `json:"statusMessage"`
	VersionSizeBytes int64     `json:"versionSizeBytes"`
}

AnnotationStoreVersionSummary is the real ListAnnotationStoreVersionsOutput element shape (types.AnnotationStoreVersionItem, omics@v1.49.5 types.go): narrower than GetAnnotationStoreVersionOutput -- no tags.

ID/StoreName ARE real AnnotationStoreVersionItem members too (required "id"/"name", same as Get -- see AnnotationStoreVersion's doc comment); gopherstack-dv4s's note that this type "has no storeName member" was about AnnotationStoreVersion.StoreName's WRONG tag of the time ("storeName", not a real key on any shape), not about the real "name" member being absent from List -- List genuinely has it too, fixed here (gopherstack-r80d batch 7) alongside the identical Get/Update/Create gap.

type Configuration

type Configuration struct {
	CreationTime      time.Time                       `json:"creationTime"`
	RunConfigurations *ConfigurationRunConfigurations `json:"runConfigurations,omitempty"`
	Tags              map[string]string               `json:"tags,omitempty"`
	Name              string                          `json:"name"`
	Description       string                          `json:"description,omitempty"`
	ARN               string                          `json:"arn,omitempty"`
	UUID              string                          `json:"uuid,omitempty"`
	Status            string                          `json:"status,omitempty"`
}

Configuration represents an HealthOmics configuration.

type ConfigurationDetails added in v1.2.0

type ConfigurationDetails struct {
	Arn  string `json:"arn,omitempty"`
	Name string `json:"name,omitempty"`
	UUID string `json:"uuid,omitempty"`
}

ConfigurationDetails describes the configuration used for a workflow run (real AWS ConfigurationDetails: arn/name/uuid of the Configuration used).

type ConfigurationRunConfigurations added in v1.3.1

type ConfigurationRunConfigurations struct {
	VpcConfig *ConfigurationVpcConfig `json:"vpcConfig,omitempty"`
}

ConfigurationRunConfigurations mirrors types.RunConfigurations (request) and types.RunConfigurationsResponse (response) (types.go:1523/1532).

type ConfigurationVpcConfig added in v1.3.1

type ConfigurationVpcConfig struct {
	VpcID            string   `json:"vpcId,omitempty"`
	SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
	SubnetIDs        []string `json:"subnetIds,omitempty"`
}

ConfigurationVpcConfig mirrors types.VpcConfig on the request side and types.VpcConfigResponse on the response side (types.go:2242/2254) -- both wire shapes share the same field set here. VpcID is the response-only "computed from the provided subnet IDs" field; left empty rather than fabricated since this backend does no real VPC/subnet resolution.

type CreateAnnotationStoreResponse added in v1.5.0

type CreateAnnotationStoreResponse struct {
	CreationTime time.Time `json:"creationTime"`
	ID           string    `json:"id"`
	Name         string    `json:"name"`
	Status       string    `json:"status"`
	VersionName  string    `json:"versionName"`
}

CreateAnnotationStoreResponse is the real CreateAnnotationStoreOutput shape (omics@v1.49.5 api_op_CreateAnnotationStore.go:68-95) -- narrower than AnnotationStore (no description/reference/sseConfig/storeArn/storeFormat/ storeOptions/tags/updateTime/numVersions/storeSizeBytes/statusMessage) and with one member the domain struct never tracked at all: VersionName, real required "versionName" (deserializers.go:1290, CreateAnnotationStore's own deserializer -- distinct from GetAnnotationStoreOutput, which has no such member). Echoes the caller-supplied CreateAnnotationStoreInput.VersionName (also real, optional, api_op_CreateAnnotationStore.go:61-62) verbatim; left empty rather than fabricated when the caller didn't supply one.

type CreateWorkflowInput

type CreateWorkflowInput struct {
	ParameterTemplate map[string]WorkflowParameter
	StorageCapacity   *int
	Tags              map[string]string
	Name              string
	Description       string
	DefinitionZip     string
	DefinitionURI     string
	Engine            string
	StorageType       string
}

CreateWorkflowInput holds input for CreateWorkflow (real CreateWorkflowInput fields this backend models; DefinitionZip/DefinitionUri are accepted but discarded -- this backend does not store or execute workflow definition content, see the Engine doc comment in PARITY.md).

type CreateWorkflowVersionInput

type CreateWorkflowVersionInput struct {
	ParameterTemplate map[string]WorkflowParameter
	StorageCapacity   *int
	Tags              map[string]string
	WorkflowID        string
	VersionName       string
	Description       string
	StorageType       string
}

CreateWorkflowVersionInput holds input for CreateWorkflowVersion.

type DefaultRunSetting added in v1.3.1

type DefaultRunSetting struct {
	RunTags    map[string]string
	RoleARN    string
	WorkflowID string
	Name       string
	OutputURI  string
	RunGroupID string
	Priority   int32
}

DefaultRunSetting is the shared configuration StartRunBatch applies to every run in the batch (real types.DefaultRunSetting). Only the subset of fields this backend's StartRun already models is accepted -- see the RunBatch family note in PARITY.md for the rest (CacheBehavior/CacheId/ConfigurationName/EngineSettings/LogLevel/ NetworkingMode/OutputBucketOwnerId/Parameters/RetentionMode/ScratchStorageMode/ StorageCapacity/StorageType/WorkflowOwnerId), which are accepted on the wire but not wired to real behavior.

type Handler

type Handler struct {
	Backend StorageBackend
}

Handler handles HealthOmics HTTP requests.

func NewHandler

func NewHandler(b StorageBackend) *Handler

NewHandler constructs a new Handler.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation extracts the operation from the request.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource extracts the resource identifier.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns all supported operation names, derived from the same opDispatch table handleREST dispatches through -- the two can never drift out of sync.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset resets the backend.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a matcher for HealthOmics REST paths.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend.

type ImportJobFilter added in v1.2.0

type ImportJobFilter struct {
	Status    string
	StoreName string
}

ImportJobFilter is filter criteria shared by ListAnnotationImportJobs and ListVariantImportJobs (status + owning store name).

type InMemoryBackend

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

InMemoryBackend is the in-memory backend for HealthOmics.

Every resource collection that carries its own identity field (ID, Name, or ShareID) is a directly keyed store.Table; every collection that was previously nested by a parent store/workflow/run/annotation-store is a store.Table keyed by the composite "parent|id" string (see parentKey), with a companion store.Index grouping entries by parent for per-parent scans -- the same pattern services/emr and services/codeartifact use for their region-nested resources. HealthOmics's "region" dimension itself was never actually exercised (every pre-refactor call site read/wrote b.region(b.defaultRegion) only -- WithRegion's context value never reached a lookup), so unlike emr/codeartifact no region qualifier is threaded through these keys; only the genuine parent/child nesting is preserved.

uploadParts (order-sensitive: part listing walks it in append order, not sorted order), uploadPartData/readSetBytes/referenceBytes (raw []byte values, not *V), and tags (map[string]string values, not *V) are not eligible for store.Table and remain plain nested maps. Field order below is deliberate: it was determined by running fieldalignment -fix on an isolated scratch copy of this struct (never directly on this package -- see the fieldalignment hazard note in .claude/memories/parity-principles.md-adjacent process docs) and then hand-applied here. It shaves 8 pointer-bytes of padding off the struct; do not reorder without re-checking on a scratch copy.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend.

func (*InMemoryBackend) AbortMultipartReadSetUpload

func (b *InMemoryBackend) AbortMultipartReadSetUpload(sequenceStoreID, uploadID string) error

AbortMultipartReadSetUpload aborts a multipart read set upload.

func (*InMemoryBackend) AcceptShare

func (b *InMemoryBackend) AcceptShare(shareID string) (*Share, error)

AcceptShare accepts a share invitation.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the account ID.

func (*InMemoryBackend) BatchDeleteReadSet

func (b *InMemoryBackend) BatchDeleteReadSet(
	sequenceStoreID string,
	ids []string,
) ([]ReadSetBatchError, error)

BatchDeleteReadSet deletes multiple read sets.

func (*InMemoryBackend) CancelAnnotationImportJob

func (b *InMemoryBackend) CancelAnnotationImportJob(jobID string) error

CancelAnnotationImportJob cancels an annotation import job.

func (*InMemoryBackend) CancelRun

func (b *InMemoryBackend) CancelRun(id string) error

CancelRun cancels a run.

func (*InMemoryBackend) CancelRunBatch

func (b *InMemoryBackend) CancelRunBatch(id string) error

CancelRunBatch cancels a run batch.

func (*InMemoryBackend) CancelVariantImportJob

func (b *InMemoryBackend) CancelVariantImportJob(jobID string) error

CancelVariantImportJob cancels a variant import job.

func (*InMemoryBackend) CompleteMultipartReadSetUpload

func (b *InMemoryBackend) CompleteMultipartReadSetUpload(
	sequenceStoreID, uploadID string,
) (*ReadSetMetadata, error)

CompleteMultipartReadSetUpload completes a multipart read set upload.

func (*InMemoryBackend) CreateAnnotationStore

func (b *InMemoryBackend) CreateAnnotationStore(
	name, storeFormat string,
	reference, sseConfig, storeOptions map[string]any,
	tags map[string]string,
) (*AnnotationStore, error)

CreateAnnotationStore creates a new annotation store.

func (*InMemoryBackend) CreateAnnotationStoreVersion

func (b *InMemoryBackend) CreateAnnotationStoreVersion(
	name, versionName, description string,
	tags map[string]string,
) (*AnnotationStoreVersion, error)

CreateAnnotationStoreVersion creates a version of an annotation store.

func (*InMemoryBackend) CreateConfiguration

func (b *InMemoryBackend) CreateConfiguration(
	name, description string, runConfigurations *ConfigurationRunConfigurations, tags map[string]string,
) (*Configuration, error)

CreateConfiguration creates a configuration. runConfigurations is a required CreateConfigurationInput member (verified against validateOpCreateConfigurationInput, validators.go) that the pre-fix request never read at all.

func (*InMemoryBackend) CreateMultipartReadSetUpload

func (b *InMemoryBackend) CreateMultipartReadSetUpload(
	sequenceStoreID, name, sourceFileType, sampleID, subjectID, generatedFrom, referenceARN, description string,
	tags map[string]string,
) (*MultipartReadSetUpload, error)

CreateMultipartReadSetUpload creates a multipart read set upload.

func (*InMemoryBackend) CreateReferenceStore

func (b *InMemoryBackend) CreateReferenceStore(
	name, description string,
	tags map[string]string,
) (*ReferenceStore, error)

CreateReferenceStore creates a new reference store.

func (*InMemoryBackend) CreateRunCache

func (b *InMemoryBackend) CreateRunCache(
	name, cacheS3Location, cacheBehavior string,
	tags map[string]string,
) (*RunCache, error)

CreateRunCache creates a new run cache. cacheBehavior defaults to CreateRunCacheInput.CacheBehavior's own documented default (CACHE_ON_FAILURE) when empty.

func (*InMemoryBackend) CreateRunGroup

func (b *InMemoryBackend) CreateRunGroup(
	name string,
	maxCPUs, maxRuns, maxDuration int,
	maxGPUs int,
	tags map[string]string,
) (*RunGroup, error)

CreateRunGroup creates a new run group.

func (*InMemoryBackend) CreateSequenceStore

func (b *InMemoryBackend) CreateSequenceStore(
	name, description, eTagAlgorithmFamily, accessLogLocation string,
	tags map[string]string,
) (*SequenceStore, error)

CreateSequenceStore creates a new sequence store.

func (*InMemoryBackend) CreateShare

func (b *InMemoryBackend) CreateShare(
	resourceARN, principalSubscriber, name string,
) (*Share, error)

CreateShare creates a new resource share.

func (*InMemoryBackend) CreateVariantStore

func (b *InMemoryBackend) CreateVariantStore(
	name string,
	reference, sseConfig map[string]any,
	tags map[string]string,
) (*VariantStore, error)

CreateVariantStore creates a new variant store.

sseConfig is real CreateVariantStoreInput's optional "sseConfig" (api_op_CreateVariantStore.go) -- previously not even read by the handler, despite GetVariantStoreOutput/VariantStoreItem requiring it on every response (types.go); the same passthrough-map convention AnnotationStore already uses (gopherstack-r80d batch 7).

func (*InMemoryBackend) CreateWorkflow

func (b *InMemoryBackend) CreateWorkflow(input CreateWorkflowInput) (*Workflow, error)

CreateWorkflow creates a new workflow. StorageCapacity/StorageType are stored/echoed exactly as given, with no fabricated default: unlike StartRunInput.StorageType/.StorageCapacity (which do state fixed defaults, applied in startRunDefaults), CreateWorkflowInput's own doc comments for these two fields only describe what the value means for runs that inherit it -- neither states what CreateWorkflow itself defaults to when the field is omitted, so no value is invented here. ParameterTemplate is likewise stored/echoed only when explicitly supplied -- see the doc comment on Workflow.ParameterTemplate.

func (*InMemoryBackend) CreateWorkflowVersion

func (b *InMemoryBackend) CreateWorkflowVersion(input CreateWorkflowVersionInput) (*WorkflowVersion, error)

CreateWorkflowVersion creates a new workflow version. CreateWorkflowVersion creates a new workflow version. StorageCapacity/ StorageType/ParameterTemplate are stored/echoed exactly as given -- see the doc comment on CreateWorkflow for why no default is fabricated.

func (*InMemoryBackend) DeleteAnnotationStore

func (b *InMemoryBackend) DeleteAnnotationStore(name string) (*AnnotationStore, error)

DeleteAnnotationStore deletes an annotation store.

func (*InMemoryBackend) DeleteAnnotationStoreVersions

func (b *InMemoryBackend) DeleteAnnotationStoreVersions(
	name string,
	versionNames []string,
) ([]VersionDeleteError, error)

DeleteAnnotationStoreVersions deletes one or more annotation store versions.

func (*InMemoryBackend) DeleteConfiguration

func (b *InMemoryBackend) DeleteConfiguration(name string) error

DeleteConfiguration deletes a configuration.

func (*InMemoryBackend) DeleteReference

func (b *InMemoryBackend) DeleteReference(referenceStoreID, id string) error

DeleteReference deletes a reference by store ID and reference ID. Real AWS requires any read set associated with the reference genome to be deleted first (api_op_DeleteReference.go: "The read set associated with the reference genome must first be deleted before deleting the reference genome.").

func (*InMemoryBackend) DeleteReferenceStore

func (b *InMemoryBackend) DeleteReferenceStore(id string) error

DeleteReferenceStore deletes a reference store by ID. Real AWS only permits this when the store contains no reference genomes (api_op_DeleteReferenceStore.go: "You can only delete a reference store when it does not contain any reference genomes. To empty a reference store, use DeleteReference.").

func (*InMemoryBackend) DeleteRun

func (b *InMemoryBackend) DeleteRun(id string) error

DeleteRun deletes a run.

func (*InMemoryBackend) DeleteRunBatch

func (b *InMemoryBackend) DeleteRunBatch(id string) error

DeleteRunBatch deletes a single run batch resource (real AWS DeleteBatch semantics). Real AWS requires the batch to already be in a terminal state (PROCESSED/FAILED/CANCELLED/RUNS_DELETED) before it will delete the batch metadata; attempting to delete a batch still in progress returns a ConflictException.

func (*InMemoryBackend) DeleteRunCache

func (b *InMemoryBackend) DeleteRunCache(id string) error

DeleteRunCache deletes a run cache.

func (*InMemoryBackend) DeleteRunGroup

func (b *InMemoryBackend) DeleteRunGroup(id string) error

DeleteRunGroup deletes a run group.

func (*InMemoryBackend) DeleteRunsInBatch

func (b *InMemoryBackend) DeleteRunsInBatch(batchID string) error

DeleteRunsInBatch deletes the individual workflow runs that belong to a run batch (real DeleteRunBatch semantics: POST /runBatch/delete with a single batchId in the body). The run batch resource itself is left intact; use DeleteRunBatch (DELETE /runBatch/{batchId}, real DeleteBatch semantics) to remove the batch metadata afterward.

func (*InMemoryBackend) DeleteS3AccessPolicy

func (b *InMemoryBackend) DeleteS3AccessPolicy(s3AccessPointARN string) error

DeleteS3AccessPolicy deletes an S3 access policy.

func (*InMemoryBackend) DeleteSequenceStore

func (b *InMemoryBackend) DeleteSequenceStore(id string) error

DeleteSequenceStore deletes a sequence store by ID. Real AWS only permits this when the store contains no read sets (api_op_DeleteSequenceStore.go: "You can only delete a sequence store when it does not contain any read sets. Use the BatchDeleteReadSet API operation to ensure that all read sets in the sequence store are deleted.").

func (*InMemoryBackend) DeleteShare

func (b *InMemoryBackend) DeleteShare(shareID string) (*Share, error)

DeleteShare deletes a share.

func (*InMemoryBackend) DeleteVariantStore

func (b *InMemoryBackend) DeleteVariantStore(name string) (*VariantStore, error)

DeleteVariantStore deletes a variant store.

func (*InMemoryBackend) DeleteWorkflow

func (b *InMemoryBackend) DeleteWorkflow(id string) error

DeleteWorkflow deletes a workflow.

func (*InMemoryBackend) DeleteWorkflowVersion

func (b *InMemoryBackend) DeleteWorkflowVersion(workflowID, versionName string) error

DeleteWorkflowVersion deletes a workflow version.

func (*InMemoryBackend) GetAnnotationImportJob

func (b *InMemoryBackend) GetAnnotationImportJob(jobID string) (*AnnotationImportJob, error)

GetAnnotationImportJob retrieves an annotation import job.

func (*InMemoryBackend) GetAnnotationStore

func (b *InMemoryBackend) GetAnnotationStore(name string) (*AnnotationStore, error)

GetAnnotationStore retrieves an annotation store, advancing CREATING→ACTIVE on first poll (real AnnotationStoreCreatedWaiter clients poll until Status == ACTIVE).

func (*InMemoryBackend) GetAnnotationStoreVersion

func (b *InMemoryBackend) GetAnnotationStoreVersion(
	name, versionName string,
) (*AnnotationStoreVersion, error)

GetAnnotationStoreVersion retrieves an annotation store version.

func (*InMemoryBackend) GetConfiguration

func (b *InMemoryBackend) GetConfiguration(name string) (*Configuration, error)

GetConfiguration retrieves a configuration.

func (*InMemoryBackend) GetReadSetActivationJob

func (b *InMemoryBackend) GetReadSetActivationJob(
	sequenceStoreID, jobID string,
) (*ReadSetActivationJob, error)

GetReadSetActivationJob retrieves a read set activation job.

func (*InMemoryBackend) GetReadSetBytes

func (b *InMemoryBackend) GetReadSetBytes(sequenceStoreID, id string) ([]byte, error)

GetReadSetBytes returns the stored binary body for a read set.

func (*InMemoryBackend) GetReadSetExportJob

func (b *InMemoryBackend) GetReadSetExportJob(
	sequenceStoreID, jobID string,
) (*ReadSetExportJob, error)

GetReadSetExportJob retrieves a read set export job.

func (*InMemoryBackend) GetReadSetImportJob

func (b *InMemoryBackend) GetReadSetImportJob(
	sequenceStoreID, jobID string,
) (*ReadSetImportJob, error)

GetReadSetImportJob retrieves a read set import job.

func (*InMemoryBackend) GetReadSetMetadata

func (b *InMemoryBackend) GetReadSetMetadata(sequenceStoreID, id string) (*ReadSetMetadata, error)

GetReadSetMetadata retrieves read set metadata.

func (*InMemoryBackend) GetReferenceBytes

func (b *InMemoryBackend) GetReferenceBytes(referenceStoreID, id string) ([]byte, error)

GetReferenceBytes returns the stored binary body for a reference.

func (*InMemoryBackend) GetReferenceImportJob

func (b *InMemoryBackend) GetReferenceImportJob(
	referenceStoreID, jobID string,
) (*ReferenceImportJob, error)

GetReferenceImportJob retrieves a reference import job.

func (*InMemoryBackend) GetReferenceMetadata

func (b *InMemoryBackend) GetReferenceMetadata(
	referenceStoreID, id string,
) (*ReferenceMetadata, error)

GetReferenceMetadata retrieves reference metadata.

func (*InMemoryBackend) GetReferenceStore

func (b *InMemoryBackend) GetReferenceStore(id string) (*ReferenceStore, error)

GetReferenceStore retrieves a reference store by ID.

func (*InMemoryBackend) GetRun

func (b *InMemoryBackend) GetRun(id string) (*Run, error)

GetRun retrieves a run, advancing PENDING→RUNNING→COMPLETED across polls (real RunRunningWaiter/RunCompletedWaiter clients poll GetRun until Status reaches RUNNING / COMPLETED respectively).

func (*InMemoryBackend) GetRunBatch

func (b *InMemoryBackend) GetRunBatch(id string) (*RunBatch, error)

GetRunBatch retrieves a run batch.

func (*InMemoryBackend) GetRunBatchSummary added in v1.3.1

func (b *InMemoryBackend) GetRunBatchSummary(id string) (RunBatchSummary, error)

GetRunBatchSummary computes the live RunSummary breakdown for GetBatch's response.

func (*InMemoryBackend) GetRunCache

func (b *InMemoryBackend) GetRunCache(id string) (*RunCache, error)

GetRunCache retrieves a run cache.

func (*InMemoryBackend) GetRunGroup

func (b *InMemoryBackend) GetRunGroup(id string) (*RunGroup, error)

GetRunGroup retrieves a run group.

func (*InMemoryBackend) GetRunTask

func (b *InMemoryBackend) GetRunTask(runID, taskID string) (*RunTask, error)

GetRunTask retrieves a task within a run, advancing PENDING→RUNNING→ COMPLETED across polls (real TaskRunningWaiter/TaskCompletedWaiter clients poll GetRunTask until Status reaches RUNNING / COMPLETED respectively).

func (*InMemoryBackend) GetS3AccessPolicy

func (b *InMemoryBackend) GetS3AccessPolicy(s3AccessPointARN string) (*S3AccessPolicy, error)

GetS3AccessPolicy retrieves an S3 access policy.

func (*InMemoryBackend) GetSequenceStore

func (b *InMemoryBackend) GetSequenceStore(id string) (*SequenceStore, error)

GetSequenceStore retrieves a sequence store by ID.

func (*InMemoryBackend) GetShare

func (b *InMemoryBackend) GetShare(shareID string) (*Share, error)

GetShare retrieves a share, advancing ACTIVATING→ACTIVE on first poll, mirroring GetWorkflow/GetAnnotationStore/GetVariantStore's reap-on-read pattern. AcceptShare stamped Status ACTIVATING and nothing else in this backend ever advanced it -- a client polling GetShare for readiness never saw a terminal status. PENDING is left alone: it is the correct client-driven wait for AcceptShare/RejectShare, not a stall.

func (*InMemoryBackend) GetVariantImportJob

func (b *InMemoryBackend) GetVariantImportJob(jobID string) (*VariantImportJob, error)

GetVariantImportJob retrieves a variant import job.

func (*InMemoryBackend) GetVariantStore

func (b *InMemoryBackend) GetVariantStore(name string) (*VariantStore, error)

GetVariantStore retrieves a variant store, advancing CREATING→ACTIVE on first poll (real VariantStoreCreatedWaiter clients poll until Status == ACTIVE).

func (*InMemoryBackend) GetWorkflow

func (b *InMemoryBackend) GetWorkflow(id string) (*Workflow, error)

GetWorkflow retrieves a workflow, advancing CREATING→ACTIVE on first poll (real WorkflowActiveWaiter clients poll GetWorkflow until Status == ACTIVE).

func (*InMemoryBackend) GetWorkflowVersion

func (b *InMemoryBackend) GetWorkflowVersion(
	workflowID, versionName string,
) (*WorkflowVersion, error)

GetWorkflowVersion retrieves a workflow version, advancing CREATING→ACTIVE on first poll (real WorkflowVersionActiveWaiter clients poll until Status == ACTIVE).

func (*InMemoryBackend) ListAnnotationImportJobs

func (b *InMemoryBackend) ListAnnotationImportJobs(
	filter *ImportJobFilter,
	ids0 []string,
	maxResults int,
	nextToken string,
) ([]*AnnotationImportJob, string, error)

ListAnnotationImportJobs lists annotation import jobs, optionally filtered by status/storeName and/or a specific set of job ids (real AWS ListAnnotationImportJobsInput body "filter"/"ids").

func (*InMemoryBackend) ListAnnotationStoreVersions

func (b *InMemoryBackend) ListAnnotationStoreVersions(
	name string,
	filter *StoreStatusFilter,
	maxResults int,
	nextToken string,
) ([]*AnnotationStoreVersion, string, error)

ListAnnotationStoreVersions lists versions of an annotation store, optionally filtered by status (real AWS ListAnnotationStoreVersionsInput body "filter", omics@v1.49.5 serializers.go:5608).

func (*InMemoryBackend) ListAnnotationStores

func (b *InMemoryBackend) ListAnnotationStores(
	filter *StoreStatusFilter,
	ids0 []string,
	maxResults int,
	nextToken string,
) ([]*AnnotationStore, string, error)

ListAnnotationStores lists annotation stores, optionally filtered by status and/or a specific set of store ids (real AWS ListAnnotationStoresInput body "filter"/"ids", omics@v1.49.5 serializers.go:5497).

func (*InMemoryBackend) ListConfigurations

func (b *InMemoryBackend) ListConfigurations(
	maxResults int,
	nextToken string,
) ([]*Configuration, string, error)

ListConfigurations lists configurations.

func (*InMemoryBackend) ListMultipartReadSetUploads

func (b *InMemoryBackend) ListMultipartReadSetUploads(
	sequenceStoreID string,
	maxResults int,
	nextToken string,
) ([]*MultipartReadSetUpload, string, error)

ListMultipartReadSetUploads lists in-progress multipart uploads.

func (*InMemoryBackend) ListReadSetActivationJobs

func (b *InMemoryBackend) ListReadSetActivationJobs(
	sequenceStoreID string,
	maxResults int,
	nextToken string,
) ([]*ReadSetActivationJob, string, error)

ListReadSetActivationJobs lists read set activation jobs.

func (*InMemoryBackend) ListReadSetExportJobs

func (b *InMemoryBackend) ListReadSetExportJobs(
	sequenceStoreID string,
	maxResults int,
	nextToken string,
) ([]*ReadSetExportJob, string, error)

ListReadSetExportJobs lists read set export jobs.

func (*InMemoryBackend) ListReadSetImportJobs

func (b *InMemoryBackend) ListReadSetImportJobs(
	sequenceStoreID string,
	maxResults int,
	nextToken string,
) ([]*ReadSetImportJob, string, error)

ListReadSetImportJobs lists read set import jobs.

func (*InMemoryBackend) ListReadSetUploadParts

func (b *InMemoryBackend) ListReadSetUploadParts(
	sequenceStoreID, uploadID string,
	maxResults int,
	nextToken string,
) ([]*ReadSetUploadPart, string, error)

ListReadSetUploadParts lists parts for a multipart read set upload.

func (*InMemoryBackend) ListReadSets

func (b *InMemoryBackend) ListReadSets(
	sequenceStoreID string,
	filter *ReadSetFilter,
	maxResults int,
	nextToken string,
) ([]*ReadSetMetadata, string, error)

ListReadSets lists read sets in a sequence store.

func (*InMemoryBackend) ListReferenceImportJobs

func (b *InMemoryBackend) ListReferenceImportJobs(
	referenceStoreID string,
	filter *ReferenceImportJobFilter,
	maxResults int,
	nextToken string,
) ([]*ReferenceImportJob, string, error)

ListReferenceImportJobs lists reference import jobs for a store, optionally filtered by status (real AWS ListReferenceImportJobsInput body "filter").

func (*InMemoryBackend) ListReferenceStores

func (b *InMemoryBackend) ListReferenceStores(
	filter *ReferenceStoreFilter,
	maxResults int,
	nextToken string,
) ([]*ReferenceStore, string, error)

ListReferenceStores lists reference stores with optional name filter.

func (*InMemoryBackend) ListReferences

func (b *InMemoryBackend) ListReferences(
	referenceStoreID string,
	filter *ReferenceFilter,
	maxResults int,
	nextToken string,
) ([]*ReferenceMetadata, string, error)

ListReferences lists references in a reference store.

func (*InMemoryBackend) ListRunBatches

func (b *InMemoryBackend) ListRunBatches(
	filter *RunBatchFilter,
	maxResults int,
	nextToken string,
) ([]*RunBatch, string, error)

ListRunBatches lists run batches, optionally filtered by name/status (real AWS ListBatchInput query parameters). filter.RunGroupID is accepted for wire compatibility but not applied: real ListBatch filters by the run group of the batch's *contained runs*, and this simplified RunBatch model doesn't track a run-group association on the batch resource itself (see the PARITY.md RunBatch note on the broader BatchRunSettings/RunSummary gap).

func (*InMemoryBackend) ListRunCaches

func (b *InMemoryBackend) ListRunCaches(
	maxResults int,
	nextToken string,
) ([]*RunCache, string, error)

ListRunCaches lists run caches.

func (*InMemoryBackend) ListRunGroups

func (b *InMemoryBackend) ListRunGroups(
	filter *RunGroupFilter,
	maxResults int,
	nextToken string,
) ([]*RunGroup, string, error)

ListRunGroups lists run groups, optionally filtered by name (real AWS ListRunGroupsInput takes "name" as a query parameter).

func (*InMemoryBackend) ListRunTasks

func (b *InMemoryBackend) ListRunTasks(
	runID string,
	filter *RunTaskFilter,
	maxResults int,
	nextToken string,
) ([]*RunTask, string, error)

ListRunTasks lists tasks within a run, optionally filtered by status (real AWS ListRunTasksInput "status" query parameter).

func (*InMemoryBackend) ListRuns

func (b *InMemoryBackend) ListRuns(filter *RunFilter, maxResults int, nextToken string) ([]*Run, string, error)

ListRuns lists runs, optionally filtered by name/runGroupId/batchId/status (real AWS ListRunsInput query parameters).

func (*InMemoryBackend) ListRunsInBatch

func (b *InMemoryBackend) ListRunsInBatch(
	batchID string,
	filter *RunsInBatchFilter,
	maxResults int,
	nextToken string,
) ([]*Run, string, error)

ListRunsInBatch lists runs that belong to a run batch, optionally filtered by runId and runSettingId (real AWS ListRunsInBatchInput query parameters). filter.SubmissionStatus is accepted for wire compatibility but not applied: this backend has no async submission-status state machine, since batches complete submission synchronously (see the PARITY.md RunBatch note).

func (*InMemoryBackend) ListSequenceStores

func (b *InMemoryBackend) ListSequenceStores(
	filter *SequenceStoreFilter,
	maxResults int,
	nextToken string,
) ([]*SequenceStore, string, error)

ListSequenceStores lists sequence stores.

func (*InMemoryBackend) ListShares

func (b *InMemoryBackend) ListShares(
	resourceOwner string,
	filter *ShareFilter,
	maxResults int,
	nextToken string,
) ([]*Share, string, error)

ListShares lists shares by resource owner, optionally filtered by resourceArns/status/type (real AWS ListSharesInput body "filter", omics@v1.49.5 types/types.go:678).

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(resourceARN string) (map[string]string, error)

ListTagsForResource returns all tags for a resource.

func (*InMemoryBackend) ListVariantImportJobs

func (b *InMemoryBackend) ListVariantImportJobs(
	filter *ImportJobFilter,
	ids0 []string,
	maxResults int,
	nextToken string,
) ([]*VariantImportJob, string, error)

ListVariantImportJobs lists variant import jobs, optionally filtered by status/storeName and/or a specific set of job ids (real AWS ListVariantImportJobsInput body "filter"/"ids").

func (*InMemoryBackend) ListVariantStores

func (b *InMemoryBackend) ListVariantStores(
	filter *StoreStatusFilter,
	ids0 []string,
	maxResults int,
	nextToken string,
) ([]*VariantStore, string, error)

ListVariantStores lists variant stores, optionally filtered by status and/or a specific set of store ids (real AWS ListVariantStoresInput body "filter"/"ids", omics@v1.49.5 serializers.go:7543).

func (*InMemoryBackend) ListWorkflowVersions

func (b *InMemoryBackend) ListWorkflowVersions(
	workflowID string,
	filter *WorkflowVersionFilter,
	maxResults int,
	nextToken string,
) ([]*WorkflowVersion, string, error)

ListWorkflowVersions lists versions of a workflow, optionally filtered by type (real AWS ListWorkflowVersionsInput "type" query parameter).

func (*InMemoryBackend) ListWorkflows

func (b *InMemoryBackend) ListWorkflows(
	filter *WorkflowFilter,
	maxResults int,
	nextToken string,
) ([]*Workflow, string, error)

ListWorkflows lists workflows, optionally filtered by name/type (real AWS ListWorkflowsInput query parameters).

func (*InMemoryBackend) PutS3AccessPolicy

func (b *InMemoryBackend) PutS3AccessPolicy(s3AccessPointARN, policy string) error

PutS3AccessPolicy stores an S3 access policy.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the default region.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all stored state.

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) StartAnnotationImportJob

func (b *InMemoryBackend) StartAnnotationImportJob(
	destinationName, roleARN string,
	items []AnnotationImportItem,
	annotationFields map[string]string,
	formatOptions map[string]any,
	runLeftNormalization bool,
	versionName string,
) (*AnnotationImportJob, error)

StartAnnotationImportJob starts an annotation import job. annotationFields, formatOptions, runLeftNormalization, and versionName are real optional StartAnnotationImportJobInput members (serializers.go:7892-7935) that were previously dropped on the floor -- the handler never read them at all.

func (*InMemoryBackend) StartReadSetActivationJob

func (b *InMemoryBackend) StartReadSetActivationJob(
	sequenceStoreID string,
	sources []ReadSetActivationJobSource,
) (*ReadSetActivationJob, error)

StartReadSetActivationJob creates a read set activation job.

func (*InMemoryBackend) StartReadSetExportJob

func (b *InMemoryBackend) StartReadSetExportJob(
	sequenceStoreID, destination string,
	sources []ReadSetExportJobSource,
) (*ReadSetExportJob, error)

StartReadSetExportJob creates a read set export job.

func (*InMemoryBackend) StartReadSetImportJob

func (b *InMemoryBackend) StartReadSetImportJob(
	sequenceStoreID, roleARN string,
	sources []ReadSetImportJobSource,
) (*ReadSetImportJob, error)

StartReadSetImportJob creates a read set import job.

func (*InMemoryBackend) StartReferenceImportJob

func (b *InMemoryBackend) StartReferenceImportJob(
	referenceStoreID, roleARN string,
	sources []ReferenceImportJobSource,
) (*ReferenceImportJob, error)

StartReferenceImportJob creates a reference import job.

func (*InMemoryBackend) StartRun

func (b *InMemoryBackend) StartRun(input StartRunInput) (*Run, error)

StartRun starts a new workflow run. See StartRunInput for which real StartRunInput fields this backend models.

func (*InMemoryBackend) StartRunBatch

func (b *InMemoryBackend) StartRunBatch(
	batchName string,
	def DefaultRunSetting,
	inlineSettings []InlineRunSetting,
	tags map[string]string,
) (*RunBatch, error)

StartRunBatch starts a new run batch: it creates the RunBatch resource, then immediately creates one constituent Run per entry in inlineSettings (real BatchRunSettings.InlineSettings), merging each with def (real DefaultRunSetting) -- a run-level field is used when set, falling back to the batch default otherwise, matching the documented override semantics of types.InlineSetting. A duplicate RunSettingID within the same request is a submission failure for that entry (not a fatal error for the whole batch), matching real AWS's per-run submission-outcome model (see SubmissionSummary).

func (*InMemoryBackend) StartVariantImportJob

func (b *InMemoryBackend) StartVariantImportJob(
	destinationName, roleARN string,
	items []VariantImportItem,
	annotationFields map[string]string,
	runLeftNormalization bool,
) (*VariantImportJob, error)

StartVariantImportJob starts a variant import job. annotationFields and runLeftNormalization are real optional StartVariantImportJobInput members (serializers.go:8737-8767) that were previously dropped on the floor -- the handler never read them at all. Unlike annotation import jobs, variant import jobs have no formatOptions or versionName field in the real API.

func (*InMemoryBackend) TagResource

func (b *InMemoryBackend) TagResource(resourceARN string, tags map[string]string) error

TagResource adds tags to a resource identified by ARN.

func (*InMemoryBackend) UntagResource

func (b *InMemoryBackend) UntagResource(resourceARN string, tagKeys []string) error

UntagResource removes tags from a resource identified by ARN.

func (*InMemoryBackend) UpdateAnnotationStore

func (b *InMemoryBackend) UpdateAnnotationStore(
	name, description string,
) (*AnnotationStore, error)

UpdateAnnotationStore updates an annotation store.

func (*InMemoryBackend) UpdateAnnotationStoreVersion

func (b *InMemoryBackend) UpdateAnnotationStoreVersion(
	name, versionName, description string,
) (*AnnotationStoreVersion, error)

UpdateAnnotationStoreVersion updates an annotation store version.

func (*InMemoryBackend) UpdateRunCache

func (b *InMemoryBackend) UpdateRunCache(id, name, description, cacheBehavior string) error

UpdateRunCache updates a run cache. cacheBehavior, like name and description, is applied only when non-empty (real UpdateRunCacheInput.CacheBehavior: "Update the default run cache behavior" -- omitting it leaves the existing value).

func (*InMemoryBackend) UpdateRunGroup

func (b *InMemoryBackend) UpdateRunGroup(
	id, name string,
	maxCPUs, maxRuns, maxDuration int,
	maxGPUs int,
) (*RunGroup, error)

UpdateRunGroup updates a run group.

func (*InMemoryBackend) UpdateSequenceStore

func (b *InMemoryBackend) UpdateSequenceStore(
	id, name, description string,
) (*SequenceStore, error)

UpdateSequenceStore updates a sequence store's name and description.

func (*InMemoryBackend) UpdateVariantStore

func (b *InMemoryBackend) UpdateVariantStore(name, description string) (*VariantStore, error)

UpdateVariantStore updates a variant store.

func (*InMemoryBackend) UpdateWorkflow

func (b *InMemoryBackend) UpdateWorkflow(id, name, description, storageType string, storageCapacity *int) error

UpdateWorkflow updates a workflow.

func (*InMemoryBackend) UpdateWorkflowVersion

func (b *InMemoryBackend) UpdateWorkflowVersion(
	workflowID, versionName, description, storageType string, storageCapacity *int,
) error

UpdateWorkflowVersion updates a workflow version.

func (*InMemoryBackend) UploadReadSetPart

func (b *InMemoryBackend) UploadReadSetPart(
	sequenceStoreID, uploadID string,
	partNumber int,
	partSource string,
	data []byte,
) (string, error)

UploadReadSetPart stores binary data for a single part and returns its SHA256 checksum.

type InlineRunSetting added in v1.3.1

type InlineRunSetting struct {
	RunTags      map[string]string
	Priority     *int32
	RunSettingID string
	Name         string
	OutputURI    string
}

InlineRunSetting is one caller-supplied per-run override within a StartRunBatch request's BatchRunSettings.InlineSettings list (real types.InlineSetting). Overrides Name/OutputURI/Priority/RunTags from DefaultRunSetting when set; RunSettingID is required and has no default.

type MultipartReadSetUpload

type MultipartReadSetUpload struct {
	CreationTime    time.Time         `json:"creationTime"`
	Tags            map[string]string `json:"tags"`
	UploadID        string            `json:"uploadId"`
	SequenceStoreID string            `json:"sequenceStoreId"`
	Name            string            `json:"name,omitempty"`
	SourceFileType  string            `json:"sourceFileType"`
	SampleID        string            `json:"sampleId"`
	SubjectID       string            `json:"subjectId"`
	// GeneratedFrom is real required MultipartReadSetUploadListItem's "generatedFrom"
	// (List element, types.go) despite being optional on CreateMultipartReadSetUploadOutput
	// -- present-but-empty (not omitted) is correct either way (gopherstack-r80d batch 7).
	GeneratedFrom string `json:"generatedFrom"`
	// ReferenceARN is real required CreateMultipartReadSetUploadOutput/
	// MultipartReadSetUploadListItem "referenceArn" (api_op_CreateMultipartReadSetUpload.go:82-85,
	// types.go) despite being an optional CreateMultipartReadSetUploadInput field --
	// previously omitempty dropped the key entirely whenever a caller didn't supply
	// one, which a real client decodes as a required-field-missing error
	// (gopherstack-r80d batch 7).
	ReferenceARN string `json:"referenceArn"`
	Description  string `json:"description,omitempty"`
}

MultipartReadSetUpload represents an in-progress multipart read set upload.

Field names/JSON keys were field-diffed against CreateMultipartReadSetUploadInput/Output and MultipartReadSetUploadListItem: the real wire key for the upload's file type is "sourceFileType" (this struct previously used the invented key "sequenceType", which appears nowhere in the real API), SampleID/SubjectID are real required fields that were previously missing entirely, and there is no real "status" field on this resource at all (removed).

type Provider

type Provider struct{}

Provider implements service.Provider for AWS HealthOmics.

func (*Provider) Init

Init initializes the HealthOmics service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type ReadSetActivationJob

type ReadSetActivationJob struct {
	CreationTime    time.Time                    `json:"creationTime"`
	CompletionTime  *time.Time                   `json:"completionTime,omitempty"`
	ID              string                       `json:"id"`
	SequenceStoreID string                       `json:"sequenceStoreId"`
	Status          string                       `json:"status"`
	Sources         []ReadSetActivationJobSource `json:"sources"`
}

ReadSetActivationJob represents a read set activation job.

type ReadSetActivationJobSource

type ReadSetActivationJobSource struct {
	ReadSetID string `json:"readSetId"`
}

ReadSetActivationJobSource is a source for activating a read set.

type ReadSetBatchError

type ReadSetBatchError struct {
	ID      string `json:"id"`
	Code    string `json:"code"`
	Message string `json:"message"`
}

ReadSetBatchError is an error item from a batch delete operation.

type ReadSetExportJob

type ReadSetExportJob struct {
	CreationTime    time.Time                `json:"creationTime"`
	CompletionTime  *time.Time               `json:"completionTime,omitempty"`
	ID              string                   `json:"id"`
	SequenceStoreID string                   `json:"sequenceStoreId"`
	Destination     string                   `json:"destination"`
	Status          string                   `json:"status"`
	Sources         []ReadSetExportJobSource `json:"sources"`
}

ReadSetExportJob represents a read set export job.

type ReadSetExportJobSource

type ReadSetExportJobSource struct {
	ReadSetID string `json:"readSetId"`
}

ReadSetExportJobSource is a source for a read set export job.

type ReadSetFilter

type ReadSetFilter struct {
	Name   string
	Status string
}

ReadSetFilter is filter criteria for listing read sets.

type ReadSetImportJob

type ReadSetImportJob struct {
	CreationTime    time.Time                `json:"creationTime"`
	CompletionTime  *time.Time               `json:"completionTime,omitempty"`
	ID              string                   `json:"id"`
	SequenceStoreID string                   `json:"sequenceStoreId"`
	RoleARN         string                   `json:"roleArn"`
	Status          string                   `json:"status"`
	Sources         []ReadSetImportJobSource `json:"sources"`
}

ReadSetImportJob represents a read set import job.

type ReadSetImportJobSource

type ReadSetImportJobSource struct {
	SourceFileType string `json:"sourceFileType"`
	SourceFiles    struct {
		Source1 string `json:"source1"`
		Source2 string `json:"source2,omitempty"`
	} `json:"sourceFiles"`
	SubjectID    string `json:"subjectId"`
	SampleID     string `json:"sampleId"`
	ReferenceARN string `json:"referenceArn"`
	Name         string `json:"name"`
	Description  string `json:"description"`
}

ReadSetImportJobSource is a source for a read set import job.

type ReadSetMetadata

type ReadSetMetadata struct {
	CreationTime    time.Time         `json:"creationTime"`
	UpdateTime      time.Time         `json:"updateTime"`
	Files           map[string]any    `json:"files,omitempty"`
	Tags            map[string]string `json:"tags"`
	Arn             string            `json:"arn"`
	ID              string            `json:"id"`
	SequenceStoreID string            `json:"sequenceStoreId"`
	Name            string            `json:"name"`
	Description     string            `json:"description"`
	StatusMessage   string            `json:"statusMessage,omitempty"`
	Status          string            `json:"status"`
	// FileType is the real GetReadSetMetadataOutput/ReadSetListItem wire key
	// ("fileType") -- confirmed against the SDK deserializer. It was
	// previously (incorrectly) serialized as "sequenceType", a key that
	// doesn't exist anywhere in the real API surface.
	FileType     string `json:"fileType"`
	SubjectID    string `json:"subjectId"`
	SampleID     string `json:"sampleId"`
	ReferenceARN string `json:"referenceArn"`
}

ReadSetMetadata holds metadata for a read set.

type ReadSetUploadPart

type ReadSetUploadPart struct {
	LastUpdatedTime time.Time `json:"lastUpdatedTime"`
	Checksum        string    `json:"checksum"`
	Source          string    `json:"source"`
	PartNumber      int       `json:"partNumber"`
	PartSize        int64     `json:"partSize"`
}

ReadSetUploadPart represents a single part of a multipart read set upload.

type ReferenceFilter

type ReferenceFilter struct {
	Name string
}

ReferenceFilter is filter criteria for listing references.

type ReferenceImportJob

type ReferenceImportJob struct {
	CreationTime     time.Time                  `json:"creationTime"`
	CompletionTime   *time.Time                 `json:"completionTime,omitempty"`
	ID               string                     `json:"id"`
	ReferenceStoreID string                     `json:"referenceStoreId"`
	RoleARN          string                     `json:"roleArn"`
	Status           string                     `json:"status"`
	Sources          []ReferenceImportJobSource `json:"sources"`
}

ReferenceImportJob represents a reference import job.

type ReferenceImportJobFilter added in v1.2.0

type ReferenceImportJobFilter struct {
	Status string
}

ReferenceImportJobFilter is filter criteria for listing reference import jobs.

type ReferenceImportJobSource

type ReferenceImportJobSource struct {
	SourceFile  string `json:"sourceFile"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

ReferenceImportJobSource is a source for a reference import job.

type ReferenceMetadata

type ReferenceMetadata struct {
	CreationTime     time.Time         `json:"creationTime"`
	UpdateTime       time.Time         `json:"updateTime"`
	Files            map[string]any    `json:"files,omitempty"`
	Tags             map[string]string `json:"tags"`
	Arn              string            `json:"arn"`
	ID               string            `json:"id"`
	ReferenceStoreID string            `json:"referenceStoreId"`
	Name             string            `json:"name"`
	Description      string            `json:"description"`
	Status           string            `json:"status"`
	MD5              string            `json:"md5"`
}

ReferenceMetadata holds metadata for a genomic reference.

type ReferenceStore

type ReferenceStore struct {
	CreationTime time.Time         `json:"creationTime"`
	SseConfig    map[string]any    `json:"sseConfig,omitempty"`
	S3Access     map[string]any    `json:"s3Access,omitempty"`
	Tags         map[string]string `json:"tags"`
	Arn          string            `json:"arn"`
	ID           string            `json:"id"`
	Name         string            `json:"name"`
	Description  string            `json:"description"`
}

ReferenceStore represents an HealthOmics reference store.

type ReferenceStoreFilter

type ReferenceStoreFilter struct {
	Name string
}

ReferenceStoreFilter is filter criteria for listing reference stores.

type Run

type Run struct {
	StartTime       *time.Time            `json:"startTime,omitempty"`
	StopTime        *time.Time            `json:"stopTime,omitempty"`
	StorageCapacity *int                  `json:"storageCapacity,omitempty"`
	CreationTime    time.Time             `json:"creationTime"`
	Configuration   *ConfigurationDetails `json:"configuration,omitempty"`
	Tags            map[string]string     `json:"tags"`
	Params          map[string]any        `json:"parameters"`
	Arn             string                `json:"arn"`
	ID              string                `json:"id"`
	Name            string                `json:"name"`
	WorkflowID      string                `json:"workflowId"`
	RoleARN         string                `json:"roleArn"`
	RunGroupID      string                `json:"runGroupId,omitempty"`
	// RunBatchID is serialized as "batchId" (real GetRunOutput/RunListItem
	// wire key -- confirmed against the SDK deserializer; there is no real
	// StartRunInput field to set this, it's populated internally by
	// DeleteRunsInBatch/ListRunsInBatch's caller association).
	RunBatchID string `json:"batchId,omitempty"`
	// RunSettingID mirrors the batch caller's InlineSetting.RunSettingId (real
	// StartRunBatch request field, see types.InlineSetting) so ListRunsInBatch can map
	// each created run back to the caller-supplied per-run configuration it came from.
	// Empty for runs started via plain StartRun (there is no such field on that op).
	RunSettingID   string `json:"runSettingId,omitempty"`
	NetworkingMode string `json:"networkingMode,omitempty"`
	RunOutputURI   string `json:"runOutputUri,omitempty"`
	// CacheID/CacheBehavior associate this run with a RunCache
	// (CreateRunCache/GetRunCache). CacheBehavior defaults to the referenced
	// cache's own CacheBehavior when a CacheID is given and this field is
	// omitted (real StartRunInput.CacheBehavior: "You had set the default
	// value when you created the cache").
	CacheID       string `json:"cacheId,omitempty"`
	CacheBehavior string `json:"cacheBehavior,omitempty"`
	// RetentionMode/ScratchStorageMode/StorageType/WorkflowType are stored
	// and echoed as documented defaults; this backend does not implement
	// RetentionMode=REMOVE's automatic eviction of old runs (it already
	// never auto-removes runs, which is what RETAIN, the default, already
	// describes) or WorkflowType=READY2RUN's public workflow catalog (only
	// PRIVATE workflows -- this backend's own workflow store -- exist here).
	RetentionMode       string `json:"retentionMode,omitempty"`
	ScratchStorageMode  string `json:"scratchStorageMode,omitempty"`
	StorageType         string `json:"storageType,omitempty"`
	WorkflowType        string `json:"workflowType,omitempty"`
	WorkflowVersionName string `json:"workflowVersionName,omitempty"`
	UUID                string `json:"uuid,omitempty"`
	Status              string `json:"status"`
	// contains filtered or unexported fields
}

Run represents an HealthOmics workflow run.

type RunBatch

type RunBatch struct {
	CreationTime  time.Time         `json:"creationTime"`
	SubmittedTime time.Time         `json:"submittedTime,omitzero"`
	ProcessedTime time.Time         `json:"processedTime,omitzero"`
	Tags          map[string]string `json:"tags"`
	Arn           string            `json:"arn"`
	ID            string            `json:"id"`
	UUID          string            `json:"uuid"`
	Name          string            `json:"name,omitempty"`
	WorkflowID    string            `json:"workflowId"`
	RoleARN       string            `json:"roleArn"`
	RunGroupID    string            `json:"runGroupId,omitempty"`
	OutputURI     string            `json:"outputUri,omitempty"`
	Status        string            `json:"status"`
	// TotalRuns is the number of constituent runs requested at submission time
	// (len(InlineSettings)). SubmissionSuccessCount/SubmissionFailureCount and
	// DeletedRunCount are one-time/monotonic outcomes of synchronous events
	// (submission at StartRunBatch, deletion at DeleteRunsInBatch) and are stored
	// directly rather than derived, since the Run rows they summarize either never
	// existed (failed submissions) or are removed entirely (deleted runs) -- there is
	// nothing left to recompute them from later. The remaining RunSummary counts
	// (pending/running/completed/cancelled/failed) change as runs progress and are
	// computed live from surviving Run rows by summarizeRunBatchLocked instead.
	TotalRuns              int32
	SubmissionSuccessCount int32
	SubmissionFailureCount int32
	DeletedRunCount        int32
}

RunBatch represents an HealthOmics run batch (real GetBatchOutput shape -- RunSummary/SubmissionSummary/TotalRuns are NOT stored here; they are computed live from the batch's constituent Run records by summarizeRunBatchLocked, since this backend creates/completes them synchronously and a stored, independently-updated counter would drift from the real Run rows it's meant to summarize).

type RunBatchFilter added in v1.2.0

type RunBatchFilter struct {
	Name       string
	RunGroupID string
	Status     string
}

RunBatchFilter is filter criteria for listing run batches (ListBatch).

type RunBatchSummary added in v1.3.1

type RunBatchSummary struct {
	PendingRunCount   int32
	RunningRunCount   int32
	CompletedRunCount int32
	CancelledRunCount int32
	FailedRunCount    int32
}

RunBatchSummary is the RunSummary breakdown (real types.RunSummary) computed live from a batch's surviving constituent Run rows.

type RunCache

type RunCache struct {
	CreationTime    time.Time         `json:"creationTime"`
	Tags            map[string]string `json:"tags"`
	Arn             string            `json:"arn"`
	ID              string            `json:"id"`
	Name            string            `json:"name"`
	Description     string            `json:"description,omitempty"`
	CacheS3Location string            `json:"cacheS3Uri"`
	Status          string            `json:"status"`
	// CacheBehavior is the cache's own documented default behavior for runs
	// that use it and don't override CacheBehavior on StartRun (real
	// CreateRunCacheInput.CacheBehavior: "If you don't specify a value, the
	// default behavior is CACHE_ON_FAILURE").
	CacheBehavior string `json:"cacheBehavior,omitempty"`
}

RunCache represents an HealthOmics run cache.

type RunFilter added in v1.2.0

type RunFilter struct {
	Name       string
	RunGroupID string
	BatchID    string
	Status     string
}

RunFilter is filter criteria for listing runs.

type RunGroup

type RunGroup struct {
	CreationTime time.Time         `json:"creationTime"`
	Tags         map[string]string `json:"tags"`
	Arn          string            `json:"arn"`
	ID           string            `json:"id"`
	Name         string            `json:"name"`
	MaxCPUs      int               `json:"maxCpus"`
	MaxRuns      int               `json:"maxRuns"`
	MaxDuration  int               `json:"maxDuration"`
	MaxGPUs      int               `json:"maxGpus"`
}

RunGroup represents an HealthOmics run group.

type RunGroupFilter added in v1.2.0

type RunGroupFilter struct {
	Name string
}

RunGroupFilter is filter criteria for listing run groups.

type RunTask

type RunTask struct {
	StartTime    *time.Time `json:"startTime,omitempty"`
	StopTime     *time.Time `json:"stopTime,omitempty"`
	CreationTime time.Time  `json:"creationTime"`
	TaskID       string     `json:"taskId"`
	RunID        string     `json:"runId"`
	Name         string     `json:"name"`
	Status       string     `json:"status"`
	CPUs         int        `json:"cpus"`
	Memory       int        `json:"memory"`
	// contains filtered or unexported fields
}

RunTask represents a task within a workflow run.

type RunTaskFilter added in v1.2.0

type RunTaskFilter struct {
	Status string
}

RunTaskFilter is filter criteria for listing run tasks.

type RunsInBatchFilter added in v1.2.0

type RunsInBatchFilter struct {
	RunID            string
	RunSettingID     string
	SubmissionStatus string
}

RunsInBatchFilter is filter criteria for listing the runs within a batch (ListRunsInBatch).

type S3AccessPolicy

type S3AccessPolicy struct {
	UpdateTime       *time.Time `json:"updateTime,omitempty"`
	S3AccessPointARN string     `json:"s3AccessPointArn"`
	Policy           string     `json:"s3AccessPolicy"`
	StoreID          string     `json:"storeId,omitempty"`
	StoreType        string     `json:"storeType,omitempty"`
}

S3AccessPolicy holds an S3 access policy for HealthOmics. S3AccessPolicy holds an S3 access policy for HealthOmics. Policy is serialized as "s3AccessPolicy" -- the real GetS3AccessPolicyOutput wire key (confirmed against the SDK deserializer); this struct previously used the key "policy", which real SDK clients never populate, so GetS3AccessPolicy responses were silently missing their policy document on the wire.

type SequenceStore

type SequenceStore struct {
	CreationTime  time.Time         `json:"creationTime"`
	UpdateTime    time.Time         `json:"updateTime"`
	SseConfig     map[string]any    `json:"sseConfig,omitempty"`
	S3Access      map[string]any    `json:"s3Access,omitempty"`
	Tags          map[string]string `json:"tags"`
	Arn           string            `json:"arn"`
	ID            string            `json:"id"`
	Name          string            `json:"name"`
	Description   string            `json:"description"`
	ETagAlgorithm string            `json:"eTagAlgorithm,omitempty"`
	Status        string            `json:"status"`
}

SequenceStore represents an HealthOmics sequence store.

type SequenceStoreFilter

type SequenceStoreFilter struct {
	Name string
}

SequenceStoreFilter is filter criteria for listing sequence stores.

type Share

type Share struct {
	CreationTime        time.Time  `json:"creationTime"`
	UpdateTime          *time.Time `json:"updateTime,omitempty"`
	ShareID             string     `json:"shareId"`
	ResourceARN         string     `json:"resourceArn"`
	PrincipalSubscriber string     `json:"principalSubscriber"`
	Name                string     `json:"shareName"`
	Status              string     `json:"status"`
	// contains filtered or unexported fields
}

Share represents an HealthOmics resource share.

type ShareFilter added in v1.3.1

type ShareFilter struct {
	ResourceArns []string
	Status       []string
	Type         []string
}

ShareFilter is filter criteria for ListShares (real AWS types.Filter, omics@v1.49.5 types/types.go:678: resourceArns/status/type are each an "any of" list).

type StartRunInput

type StartRunInput struct {
	StorageCapacity     *int
	Tags                map[string]string
	Params              map[string]any
	CacheID             string
	RetentionMode       string
	RunSettingID        string
	NetworkingMode      string
	RunOutputURI        string
	WorkflowID          string
	CacheBehavior       string
	RunBatchID          string
	ScratchStorageMode  string
	StorageType         string
	WorkflowType        string
	WorkflowVersionName string
	RunGroupID          string
	Name                string
	RoleARN             string
}

StartRunInput holds input for StartRun (real StartRunInput fields this backend models). RunBatchID/RunSettingID have no real StartRunInput counterpart -- they're set internally by StartRunBatch's constituent-run creation, never by a direct StartRun caller.

type StorageBackend

type StorageBackend interface {
	// ReferenceStore
	CreateReferenceStore(name, description string, tags map[string]string) (*ReferenceStore, error)
	DeleteReferenceStore(id string) error
	GetReferenceStore(id string) (*ReferenceStore, error)
	ListReferenceStores(
		filter *ReferenceStoreFilter,
		maxResults int,
		nextToken string,
	) ([]*ReferenceStore, string, error)

	// Reference
	DeleteReference(referenceStoreID, id string) error
	GetReferenceMetadata(referenceStoreID, id string) (*ReferenceMetadata, error)
	ListReferences(
		referenceStoreID string,
		filter *ReferenceFilter,
		maxResults int,
		nextToken string,
	) ([]*ReferenceMetadata, string, error)
	StartReferenceImportJob(
		referenceStoreID, roleARN string,
		sources []ReferenceImportJobSource,
	) (*ReferenceImportJob, error)
	GetReferenceImportJob(referenceStoreID, jobID string) (*ReferenceImportJob, error)
	ListReferenceImportJobs(
		referenceStoreID string,
		filter *ReferenceImportJobFilter,
		maxResults int,
		nextToken string,
	) ([]*ReferenceImportJob, string, error)

	// SequenceStore
	CreateSequenceStore(
		name, description, eTagAlgorithmFamily, accessLogLocation string,
		tags map[string]string,
	) (*SequenceStore, error)
	DeleteSequenceStore(id string) error
	GetSequenceStore(id string) (*SequenceStore, error)
	ListSequenceStores(
		filter *SequenceStoreFilter,
		maxResults int,
		nextToken string,
	) ([]*SequenceStore, string, error)
	UpdateSequenceStore(id, name, description string) (*SequenceStore, error)

	// ReadSet
	BatchDeleteReadSet(sequenceStoreID string, ids []string) ([]ReadSetBatchError, error)
	GetReadSetMetadata(sequenceStoreID, id string) (*ReadSetMetadata, error)
	ListReadSets(
		sequenceStoreID string,
		filter *ReadSetFilter,
		maxResults int,
		nextToken string,
	) ([]*ReadSetMetadata, string, error)
	StartReadSetActivationJob(
		sequenceStoreID string,
		sources []ReadSetActivationJobSource,
	) (*ReadSetActivationJob, error)
	GetReadSetActivationJob(sequenceStoreID, jobID string) (*ReadSetActivationJob, error)
	ListReadSetActivationJobs(
		sequenceStoreID string,
		maxResults int,
		nextToken string,
	) ([]*ReadSetActivationJob, string, error)
	StartReadSetExportJob(
		sequenceStoreID, destination string,
		sources []ReadSetExportJobSource,
	) (*ReadSetExportJob, error)
	GetReadSetExportJob(sequenceStoreID, jobID string) (*ReadSetExportJob, error)
	ListReadSetExportJobs(
		sequenceStoreID string,
		maxResults int,
		nextToken string,
	) ([]*ReadSetExportJob, string, error)
	StartReadSetImportJob(
		sequenceStoreID, roleARN string,
		sources []ReadSetImportJobSource,
	) (*ReadSetImportJob, error)
	GetReadSetImportJob(sequenceStoreID, jobID string) (*ReadSetImportJob, error)
	ListReadSetImportJobs(
		sequenceStoreID string,
		maxResults int,
		nextToken string,
	) ([]*ReadSetImportJob, string, error)

	// Multipart ReadSet Upload
	CreateMultipartReadSetUpload(
		sequenceStoreID, name, sourceFileType, sampleID, subjectID, generatedFrom, referenceARN, description string,
		tags map[string]string,
	) (*MultipartReadSetUpload, error)
	AbortMultipartReadSetUpload(sequenceStoreID, uploadID string) error
	CompleteMultipartReadSetUpload(sequenceStoreID, uploadID string) (*ReadSetMetadata, error)
	ListMultipartReadSetUploads(
		sequenceStoreID string,
		maxResults int,
		nextToken string,
	) ([]*MultipartReadSetUpload, string, error)
	ListReadSetUploadParts(
		sequenceStoreID, uploadID string,
		maxResults int,
		nextToken string,
	) ([]*ReadSetUploadPart, string, error)
	UploadReadSetPart(
		sequenceStoreID, uploadID string,
		partNumber int,
		partSource string,
		data []byte,
	) (string, error)
	GetReadSetBytes(sequenceStoreID, id string) ([]byte, error)
	GetReferenceBytes(referenceStoreID, id string) ([]byte, error)

	// RunGroup
	CreateRunGroup(
		name string,
		maxCPUs, maxRuns, maxDuration int,
		maxGPUs int,
		tags map[string]string,
	) (*RunGroup, error)
	DeleteRunGroup(id string) error
	GetRunGroup(id string) (*RunGroup, error)
	ListRunGroups(filter *RunGroupFilter, maxResults int, nextToken string) ([]*RunGroup, string, error)
	UpdateRunGroup(
		id, name string,
		maxCPUs, maxRuns, maxDuration int,
		maxGPUs int,
	) (*RunGroup, error)

	// Run
	StartRun(input StartRunInput) (*Run, error)
	CancelRun(id string) error
	DeleteRun(id string) error
	GetRun(id string) (*Run, error)
	ListRuns(filter *RunFilter, maxResults int, nextToken string) ([]*Run, string, error)
	GetRunTask(runID, taskID string) (*RunTask, error)
	ListRunTasks(
		runID string,
		filter *RunTaskFilter,
		maxResults int,
		nextToken string,
	) ([]*RunTask, string, error)

	// Workflow
	CreateWorkflow(input CreateWorkflowInput) (*Workflow, error)
	DeleteWorkflow(id string) error
	GetWorkflow(id string) (*Workflow, error)
	ListWorkflows(filter *WorkflowFilter, maxResults int, nextToken string) ([]*Workflow, string, error)
	UpdateWorkflow(id, name, description, storageType string, storageCapacity *int) error

	// AnnotationStore
	CreateAnnotationStore(
		name, storeFormat string,
		reference, sseConfig, storeOptions map[string]any,
		tags map[string]string,
	) (*AnnotationStore, error)
	DeleteAnnotationStore(name string) (*AnnotationStore, error)
	GetAnnotationStore(name string) (*AnnotationStore, error)
	ListAnnotationStores(
		filter *StoreStatusFilter,
		ids []string,
		maxResults int,
		nextToken string,
	) ([]*AnnotationStore, string, error)
	UpdateAnnotationStore(name, description string) (*AnnotationStore, error)
	StartAnnotationImportJob(
		destinationName, roleARN string,
		items []AnnotationImportItem,
		annotationFields map[string]string,
		formatOptions map[string]any,
		runLeftNormalization bool,
		versionName string,
	) (*AnnotationImportJob, error)
	GetAnnotationImportJob(jobID string) (*AnnotationImportJob, error)
	ListAnnotationImportJobs(
		filter *ImportJobFilter,
		ids []string,
		maxResults int,
		nextToken string,
	) ([]*AnnotationImportJob, string, error)
	CancelAnnotationImportJob(jobID string) error

	// AnnotationStoreVersion
	CreateAnnotationStoreVersion(
		name, versionName, description string,
		tags map[string]string,
	) (*AnnotationStoreVersion, error)
	DeleteAnnotationStoreVersions(name string, versionNames []string) ([]VersionDeleteError, error)
	GetAnnotationStoreVersion(name, versionName string) (*AnnotationStoreVersion, error)
	ListAnnotationStoreVersions(
		name string,
		filter *StoreStatusFilter,
		maxResults int,
		nextToken string,
	) ([]*AnnotationStoreVersion, string, error)
	UpdateAnnotationStoreVersion(
		name, versionName, description string,
	) (*AnnotationStoreVersion, error)

	// VariantStore
	CreateVariantStore(name string, reference, sseConfig map[string]any, tags map[string]string) (*VariantStore, error)
	DeleteVariantStore(name string) (*VariantStore, error)
	GetVariantStore(name string) (*VariantStore, error)
	ListVariantStores(
		filter *StoreStatusFilter,
		ids []string,
		maxResults int,
		nextToken string,
	) ([]*VariantStore, string, error)
	UpdateVariantStore(name, description string) (*VariantStore, error)
	StartVariantImportJob(
		destinationName, roleARN string,
		items []VariantImportItem,
		annotationFields map[string]string,
		runLeftNormalization bool,
	) (*VariantImportJob, error)
	GetVariantImportJob(jobID string) (*VariantImportJob, error)
	ListVariantImportJobs(
		filter *ImportJobFilter,
		ids []string,
		maxResults int,
		nextToken string,
	) ([]*VariantImportJob, string, error)
	CancelVariantImportJob(jobID string) error

	// Share
	CreateShare(resourceARN, principalSubscriber, name string) (*Share, error)
	AcceptShare(shareID string) (*Share, error)
	DeleteShare(shareID string) (*Share, error)
	GetShare(shareID string) (*Share, error)
	ListShares(
		resourceOwner string,
		filter *ShareFilter,
		maxResults int,
		nextToken string,
	) ([]*Share, string, error)

	// RunCache
	CreateRunCache(name, cacheS3Location, cacheBehavior string, tags map[string]string) (*RunCache, error)
	DeleteRunCache(id string) error
	GetRunCache(id string) (*RunCache, error)
	ListRunCaches(maxResults int, nextToken string) ([]*RunCache, string, error)
	UpdateRunCache(id, name, description, cacheBehavior string) error

	// RunBatch
	StartRunBatch(
		batchName string, def DefaultRunSetting, inlineSettings []InlineRunSetting, tags map[string]string,
	) (*RunBatch, error)
	CancelRunBatch(id string) error
	DeleteRunBatch(id string) error
	GetRunBatch(id string) (*RunBatch, error)
	GetRunBatchSummary(id string) (RunBatchSummary, error)
	ListRunBatches(filter *RunBatchFilter, maxResults int, nextToken string) ([]*RunBatch, string, error)
	DeleteRunsInBatch(batchID string) error
	ListRunsInBatch(
		batchID string,
		filter *RunsInBatchFilter,
		maxResults int,
		nextToken string,
	) ([]*Run, string, error)

	// Configuration
	CreateConfiguration(
		name, description string, runConfigurations *ConfigurationRunConfigurations, tags map[string]string,
	) (*Configuration, error)
	DeleteConfiguration(name string) error
	GetConfiguration(name string) (*Configuration, error)
	ListConfigurations(maxResults int, nextToken string) ([]*Configuration, string, error)

	// WorkflowVersion
	CreateWorkflowVersion(input CreateWorkflowVersionInput) (*WorkflowVersion, error)
	DeleteWorkflowVersion(workflowID, versionName string) error
	GetWorkflowVersion(workflowID, versionName string) (*WorkflowVersion, error)
	ListWorkflowVersions(
		workflowID string,
		filter *WorkflowVersionFilter,
		maxResults int,
		nextToken string,
	) ([]*WorkflowVersion, string, error)
	UpdateWorkflowVersion(workflowID, versionName, description, storageType string, storageCapacity *int) error

	// S3 Access Policy
	PutS3AccessPolicy(s3AccessPointARN, policy string) error
	GetS3AccessPolicy(s3AccessPointARN string) (*S3AccessPolicy, error)
	DeleteS3AccessPolicy(s3AccessPointARN string) error

	// Tags
	TagResource(resourceARN string, tags map[string]string) error
	UntagResource(resourceARN string, tagKeys []string) error
	ListTagsForResource(resourceARN string) (map[string]string, error)

	AccountID() string
	Region() string
	Reset()
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error
}

StorageBackend is the interface for HealthOmics storage operations.

type StoreStatusFilter added in v1.3.1

type StoreStatusFilter struct {
	Status string
}

StoreStatusFilter is filter criteria shared by ListAnnotationStores, ListVariantStores, and ListAnnotationStoreVersions (status only; real AWS ListAnnotationStoresFilter/ListVariantStoresFilter/ ListAnnotationStoreVersionsFilter, omics@v1.49.5 types/types.go:987,1018,997).

type VariantImportItem

type VariantImportItem struct {
	Source string `json:"source"`
}

VariantImportItem is a source item for a variant import job -- real types.VariantImportItemSource (types.go:2078-2086, omics@v1.49.5): Source only. This is StartVariantImportJobInput.Items' element shape, not the response shape GetVariantImportJobOutput.Items uses (see VariantImportItemDetail).

type VariantImportItemDetail added in v1.3.1

type VariantImportItemDetail struct {
	JobStatus     string `json:"jobStatus"`
	Source        string `json:"source"`
	StatusMessage string `json:"statusMessage,omitempty"`
}

VariantImportItemDetail is the real GetVariantImportJobOutput.Items element, types.VariantImportItemDetail (types.go:2058-2071): JobStatus and Source are required, StatusMessage is optional. JobStatus is set once from the job's own Status at Start time (see variantImportItemDetails, variant_stores.go): this backend completes import jobs synchronously in one step, so every item reaches its final status in that same step. StatusMessage is always empty, same convention as the job-level StatusMessage below.

gopherstack-7s8r assumed ListVariantImportJobs also returns this shape; it does not -- the real List element (VariantImportJobItem, types.go:2090-2132) has no Items field at all. See VariantImportJobSummary.

type VariantImportJob

type VariantImportJob struct {
	CreationTime         time.Time                 `json:"creationTime"`
	CompletionTime       *time.Time                `json:"completionTime,omitempty"`
	UpdateTime           time.Time                 `json:"updateTime"`
	AnnotationFields     map[string]string         `json:"annotationFields,omitempty"`
	ID                   string                    `json:"id"`
	DestinationName      string                    `json:"destinationName"`
	RoleARN              string                    `json:"roleArn"`
	Status               string                    `json:"status"`
	StatusMessage        string                    `json:"statusMessage"`
	Items                []VariantImportItemDetail `json:"items"`
	RunLeftNormalization bool                      `json:"runLeftNormalization,omitempty"`
}

VariantImportJob is the real GetVariantImportJobOutput shape (deserializers.go:11383-11444) and this backend's persisted job record.

ID is tagged "id" -- the real GetVariantImportJobOutput/ VariantImportJobItem wire key (deserializers.go:11383) -- which is right for Get/List but wrong for StartVariantImportJobOutput, whose only field is "jobId" (deserializers.go:18893); the start handler builds its own {"jobId": ...} response instead of marshaling this struct. ListVariantImportJobs doesn't marshal this struct either -- see VariantImportJobSummary. Unlike annotation import jobs, variant import jobs have no FormatOptions or VersionName field anywhere in the real API (StartVariantImportJobInput/GetVariantImportJobOutput both lack them) -- RunLeftNormalization/StatusMessage/UpdateTime are the real gaps here (deserializers.go:11406-11444), same schema-gap class as the annotation job. StatusMessage is always empty: this backend completes import jobs synchronously with no error state to describe.

type VariantImportJobSummary added in v1.3.1

type VariantImportJobSummary struct {
	CreationTime         time.Time         `json:"creationTime"`
	CompletionTime       *time.Time        `json:"completionTime,omitempty"`
	UpdateTime           time.Time         `json:"updateTime"`
	AnnotationFields     map[string]string `json:"annotationFields,omitempty"`
	ID                   string            `json:"id"`
	DestinationName      string            `json:"destinationName"`
	RoleARN              string            `json:"roleArn"`
	Status               string            `json:"status"`
	RunLeftNormalization bool              `json:"runLeftNormalization,omitempty"`
}

VariantImportJobSummary is the real ListVariantImportJobsOutput element, types.VariantImportJobItem (types.go:2090-2132). Deliberately narrower than VariantImportJob/GetVariantImportJobOutput: no Items or StatusMessage.

type VariantStore

type VariantStore struct {
	CreationTime time.Time      `json:"creationTime"`
	UpdateTime   time.Time      `json:"updateTime"`
	Reference    map[string]any `json:"reference,omitempty"`
	// SseConfig is real GetVariantStoreOutput/VariantStoreItem's required
	// "sseConfig" (types.go) -- previously not a field on this struct at
	// all, the same "member with no struct field" class as
	// AnnotationImportJob's pre-fix FormatOptions gap. CreateVariantStore
	// now threads the real (optional) CreateVariantStoreInput.SseConfig
	// through, mirroring AnnotationStore's existing convention
	// (gopherstack-r80d batch 7).
	SseConfig   map[string]any    `json:"sseConfig,omitempty"`
	Tags        map[string]string `json:"tags"`
	StoreArn    string            `json:"storeArn"`
	ID          string            `json:"id"`
	Name        string            `json:"name"`
	Description string            `json:"description"`
	Status      string            `json:"status"`
	// StatusMessage is real GetVariantStoreOutput's required
	// "statusMessage" -- previously absent from this struct entirely, the
	// same gap fixed for import jobs in c41d36cb6 but missed here. Always
	// empty: this backend transitions store status synchronously with no
	// error state to describe.
	StatusMessage string `json:"statusMessage"`
	// StoreSizeBytes is real GetVariantStoreOutput's required
	// "storeSizeBytes" (deserializers.go:11682). This backend does not track
	// actual stored bytes -- always 0 rather than a fabricated number.
	StoreSizeBytes int64 `json:"storeSizeBytes"`
	// contains filtered or unexported fields
}

VariantStore represents an HealthOmics variant store.

StoreArn is real GetVariantStoreOutput/VariantStoreItem wire key "storeArn" (omics@v1.49.5 deserializers.go:11673) -- this struct previously tagged it "arn", a key no real Get/ListVariantStores deserializer reads.

type VariantStoreSummary added in v1.3.1

type VariantStoreSummary struct {
	CreationTime   time.Time      `json:"creationTime"`
	UpdateTime     time.Time      `json:"updateTime"`
	Reference      map[string]any `json:"reference,omitempty"`
	SseConfig      map[string]any `json:"sseConfig,omitempty"`
	StoreArn       string         `json:"storeArn"`
	ID             string         `json:"id"`
	Name           string         `json:"name"`
	Description    string         `json:"description"`
	Status         string         `json:"status"`
	StatusMessage  string         `json:"statusMessage"`
	StoreSizeBytes int64          `json:"storeSizeBytes"`
}

VariantStoreSummary is the real ListVariantStoresOutput element shape (types.VariantStoreItem, omics@v1.49.5 types.go) -- narrower than GetVariantStoreOutput: no tags. ListVariantStores previously marshaled VariantStore directly, leaking it (gopherstack-dv4s).

SseConfig IS a real required VariantStoreItem member too (types.go), same as GetVariantStoreOutput -- fixed here alongside Get (gopherstack-r80d batch 7); this type's own doc comment previously called it "the opposite bug class from the one this pass targets", but it is exactly gopherstack-r80d's "member with no struct field at all" class.

type VersionDeleteError

type VersionDeleteError struct {
	VersionName string `json:"versionName"`
	Code        string `json:"code"`
	Message     string `json:"message"`
}

VersionDeleteError is an error item from a version delete operation.

type Workflow

type Workflow struct {
	CreationTime time.Time         `json:"creationTime"`
	Tags         map[string]string `json:"tags"`
	// ParameterTemplate is stored/echoed only when explicitly supplied on
	// CreateWorkflow -- when blank, real AWS auto-parses it from the
	// workflow definition file, which this backend cannot honestly
	// simulate without parsing a real workflow archive (same restraint as
	// Engine's auto-detection, see PARITY.md).
	ParameterTemplate map[string]WorkflowParameter `json:"parameterTemplate,omitempty"`
	StorageCapacity   *int                         `json:"storageCapacity,omitempty"`
	Arn               string                       `json:"arn"`
	ID                string                       `json:"id"`
	Name              string                       `json:"name"`
	Description       string                       `json:"description"`
	Engine            string                       `json:"engine"`
	Type              string                       `json:"type,omitempty"`
	StorageType       string                       `json:"storageType,omitempty"`
	UUID              string                       `json:"uuid,omitempty"`
	Status            string                       `json:"status"`
	// contains filtered or unexported fields
}

Workflow represents an HealthOmics workflow.

type WorkflowFilter added in v1.2.0

type WorkflowFilter struct {
	Name string
	Type string
}

WorkflowFilter is filter criteria for listing workflows.

type WorkflowParameter

type WorkflowParameter struct {
	Description string `json:"description,omitempty"`
	Optional    bool   `json:"optional,omitempty"`
}

WorkflowParameter describes one entry of a workflow's ParameterTemplate (real types.WorkflowParameter).

type WorkflowVersion

type WorkflowVersion struct {
	CreationTime      time.Time                    `json:"creationTime"`
	Tags              map[string]string            `json:"tags"`
	ParameterTemplate map[string]WorkflowParameter `json:"parameterTemplate,omitempty"`
	StorageCapacity   *int                         `json:"storageCapacity,omitempty"`
	Arn               string                       `json:"arn"`
	WorkflowID        string                       `json:"workflowId"`
	VersionName       string                       `json:"versionName"`
	Description       string                       `json:"description"`
	Engine            string                       `json:"engine,omitempty"`
	Type              string                       `json:"type,omitempty"`
	StorageType       string                       `json:"storageType,omitempty"`
	Status            string                       `json:"status"`
	// contains filtered or unexported fields
}

WorkflowVersion represents a version of a workflow.

type WorkflowVersionFilter added in v1.2.0

type WorkflowVersionFilter struct {
	Type string
}

WorkflowVersionFilter is filter criteria for listing workflow versions.

Jump to

Keyboard shortcuts

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