cleanrooms

package
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 22 Imported by: 0

README

Clean Rooms

Parity grade: A · SDK aws-sdk-go-v2/service/cleanrooms@v1.45.6 · last audited 2026-07-12 (42cff5ce624c6c26d806e32ade9b2a0376a0a963)

Coverage

Metric Value
Feature families 14 (13 ok, 1 partial)
Known gaps 2
Deferred items 1
Resource leaks clean
Known gaps
  • ListPrivacyBudgets / ListCollaborationPrivacyBudgets always return an empty budget list. This matches the real API's contract shape (no CreatePrivacyBudget op exists; budgets are server-computed from differential-privacy query usage against a PrivacyBudgetTemplate) but this backend does not model DP budget consumption, so the list is always empty rather than reflecting real usage. Deferred -- would need a differential-privacy accounting model, out of scope for a wire-parity sweep.
  • PreviewPrivacyImpact returns a fixed empty aggregationCount shape regardless of input parameters -- real AWS computes an actual privacy-impact estimate. Same DP-accounting gap as above.
Deferred
  • Schema creation/projection from ConfiguredTable+ConfiguredTableAssociation state (pre-existing gap noted in persistence_test.go; not touched this pass, out of scope)

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound      = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	ErrAlreadyExists = awserr.New("ConflictException", awserr.ErrAlreadyExists)
	ErrValidation    = awserr.New("ValidationException", awserr.ErrInvalidParameter)
	// ErrConflict indicates a resource state conflict, e.g. attempting to cancel a
	// protected query/job that has already reached a terminal status. Maps to the
	// same wire error (ConflictException/409) as ErrAlreadyExists but is kept
	// distinct so callers/tests can express "wrong state" independently of
	// "duplicate resource".
	ErrConflict = awserr.New("ConflictException", awserr.ErrConflict)
)
View Source
var ErrNilAppContext = errors.New("nil AppContext passed to CleanRooms Provider.Init")

ErrNilAppContext is returned by Init when a nil AppContext is passed.

Functions

This section is empty.

Types

type AnalysisTemplate

type AnalysisTemplate struct {
	Source                     map[string]any    `json:"source,omitempty"`
	Tags                       map[string]string `json:"tags,omitempty"`
	Schema                     map[string]any    `json:"schema,omitempty"`
	AnalysisTemplateIdentifier string            `json:"analysisTemplateIdentifier"`
	Format                     string            `json:"format,omitempty"`
	MembershipArn              string            `json:"membershipArn"`
	Name                       string            `json:"name"`
	Description                string            `json:"description,omitempty"`
	CollaborationIdentifier    string            `json:"collaborationIdentifier"`
	CollaborationArn           string            `json:"collaborationArn"`
	MembershipIdentifier       string            `json:"membershipIdentifier"`
	Arn                        string            `json:"arn"`
	CollaborationID            string            `json:"collaborationId"`
	MembershipID               string            `json:"membershipId"`
	ID                         string            `json:"id"`
	AnalysisParameters         []map[string]any  `json:"analysisParameters,omitempty"`
	UpdateTime                 float64           `json:"updateTime,omitempty"`
	CreateTime                 float64           `json:"createTime,omitempty"`
}

type AnalysisTemplateSummary

type AnalysisTemplateSummary struct {
	AnalysisTemplateIdentifier string  `json:"analysisTemplateIdentifier"`
	Arn                        string  `json:"arn"`
	CollaborationArn           string  `json:"collaborationArn"`
	CollaborationIdentifier    string  `json:"collaborationIdentifier"`
	MembershipIdentifier       string  `json:"membershipIdentifier"`
	MembershipArn              string  `json:"membershipArn"`
	Name                       string  `json:"name"`
	ID                         string  `json:"id"`
	MembershipID               string  `json:"membershipId"`
	CollaborationID            string  `json:"collaborationId"`
	CreateTime                 float64 `json:"createTime,omitempty"`
	UpdateTime                 float64 `json:"updateTime,omitempty"`
}

type BatchError

type BatchError struct {
	Arn     string `json:"arn,omitempty"`
	Name    string `json:"name,omitempty"`
	Code    string `json:"code"`
	Message string `json:"message"`
}

type Collaboration

type Collaboration struct {
	Tags                    map[string]string `json:"tags,omitempty"`
	CollaborationIdentifier string            `json:"collaborationIdentifier"`
	// ID mirrors CollaborationIdentifier under the canonical AWS API key ("id").
	// The AWS SDK/Terraform provider read this resource via the "id" field, so it
	// must be emitted in addition to the legacy "collaborationIdentifier" key.
	ID                 string           `json:"id"`
	Arn                string           `json:"arn"`
	Name               string           `json:"name"`
	Description        string           `json:"description,omitempty"`
	CreatorAccountID   string           `json:"creatorAccountId"`
	CreatorDisplayName string           `json:"creatorDisplayName"`
	MemberStatus       string           `json:"memberStatus"`
	QueryLogStatus     string           `json:"queryLogStatus,omitempty"`
	MemberAbilities    []string         `json:"memberAbilities,omitempty"`
	Members            []*MemberSummary `json:"members,omitempty"`
	CreateTime         float64          `json:"createTime,omitempty"`
	UpdateTime         float64          `json:"updateTime,omitempty"`
}

type CollaborationChangeRequest

type CollaborationChangeRequest struct {
	Details                 map[string]any `json:"details,omitempty"`
	ChangeRequestIdentifier string         `json:"changeRequestIdentifier"`
	CollaborationIdentifier string         `json:"collaborationIdentifier"`
	CollaborationArn        string         `json:"collaborationArn"`
	Status                  string         `json:"status"`
	Type                    string         `json:"type"`
	CreateTime              float64        `json:"createTime,omitempty"`
	UpdateTime              float64        `json:"updateTime,omitempty"`
}

type CollaborationSummary

type CollaborationSummary struct {
	CollaborationIdentifier string `json:"collaborationIdentifier"`
	// ID mirrors CollaborationIdentifier under the canonical AWS API key ("id").
	ID                 string  `json:"id"`
	Arn                string  `json:"arn"`
	Name               string  `json:"name"`
	CreatorAccountID   string  `json:"creatorAccountId"`
	CreatorDisplayName string  `json:"creatorDisplayName"`
	MemberStatus       string  `json:"memberStatus"`
	CreateTime         float64 `json:"createTime,omitempty"`
	UpdateTime         float64 `json:"updateTime,omitempty"`
}

type ConfiguredAudienceModelAssociation

type ConfiguredAudienceModelAssociation struct {
	Tags                                         map[string]string `json:"tags,omitempty"`
	Description                                  string            `json:"description,omitempty"`
	ConfiguredAudienceModelArn                   string            `json:"configuredAudienceModelArn"`
	CollaborationIdentifier                      string            `json:"collaborationIdentifier"`
	MembershipArn                                string            `json:"membershipArn"`
	MembershipIdentifier                         string            `json:"membershipIdentifier"`
	ConfiguredAudienceModelAssociationIdentifier string            `json:"configuredAudienceModelAssociationIdentifier"`
	CollaborationArn                             string            `json:"collaborationArn"`
	CollaborationID                              string            `json:"collaborationId"`
	Name                                         string            `json:"name"`
	MembershipID                                 string            `json:"membershipId"`
	Arn                                          string            `json:"arn"`
	ID                                           string            `json:"id"`
	CreateTime                                   float64           `json:"createTime,omitempty"`
	UpdateTime                                   float64           `json:"updateTime,omitempty"`
	ManageResourcePolicies                       bool              `json:"manageResourcePolicies"`
}

type ConfiguredAudienceModelAssociationSummary

type ConfiguredAudienceModelAssociationSummary struct {
	ConfiguredAudienceModelAssociationIdentifier string  `json:"configuredAudienceModelAssociationIdentifier"`
	Arn                                          string  `json:"arn"`
	CollaborationArn                             string  `json:"collaborationArn"`
	CollaborationIdentifier                      string  `json:"collaborationIdentifier"`
	MembershipArn                                string  `json:"membershipArn"`
	MembershipIdentifier                         string  `json:"membershipIdentifier"`
	Name                                         string  `json:"name"`
	ID                                           string  `json:"id"`
	MembershipID                                 string  `json:"membershipId"`
	CollaborationID                              string  `json:"collaborationId"`
	CreateTime                                   float64 `json:"createTime,omitempty"`
	UpdateTime                                   float64 `json:"updateTime,omitempty"`
}

type ConfiguredTable

type ConfiguredTable struct {
	TableReference            map[string]any    `json:"tableReference,omitempty"`
	Tags                      map[string]string `json:"tags,omitempty"`
	ConfiguredTableIdentifier string            `json:"configuredTableIdentifier"`
	Arn                       string            `json:"arn"`
	Name                      string            `json:"name"`
	Description               string            `json:"description,omitempty"`
	AnalysisMethod            string            `json:"analysisMethod,omitempty"`
	ID                        string            `json:"id"`
	AllowedColumns            []string          `json:"allowedColumns,omitempty"`
	AnalysisRuleTypes         []string          `json:"analysisRuleTypes,omitempty"`
	CreateTime                float64           `json:"createTime,omitempty"`
	UpdateTime                float64           `json:"updateTime,omitempty"`
}

type ConfiguredTableAnalysisRule

type ConfiguredTableAnalysisRule struct {
	Policy                    map[string]any `json:"policy,omitempty"`
	ConfiguredTableIdentifier string         `json:"configuredTableIdentifier"`
	ConfiguredTableArn        string         `json:"configuredTableArn"`
	Type                      string         `json:"type"`
	ConfiguredTableID         string         `json:"configuredTableId"`
	CreateTime                float64        `json:"createTime,omitempty"`
	UpdateTime                float64        `json:"updateTime,omitempty"`
}

type ConfiguredTableAssociation

type ConfiguredTableAssociation struct {
	Tags                                 map[string]string `json:"tags,omitempty"`
	RoleArn                              string            `json:"roleArn,omitempty"`
	Name                                 string            `json:"name"`
	MembershipArn                        string            `json:"membershipArn"`
	ConfiguredTableIdentifier            string            `json:"configuredTableIdentifier"`
	ConfiguredTableArn                   string            `json:"configuredTableArn"`
	ConfiguredTableAssociationIdentifier string            `json:"configuredTableAssociationIdentifier"`
	MembershipIdentifier                 string            `json:"membershipIdentifier"`
	ConfiguredTableID                    string            `json:"configuredTableId"`
	Description                          string            `json:"description,omitempty"`
	MembershipID                         string            `json:"membershipId"`
	Arn                                  string            `json:"arn"`
	ID                                   string            `json:"id"`
	AnalysisRuleTypes                    []string          `json:"analysisRuleTypes,omitempty"`
	UpdateTime                           float64           `json:"updateTime,omitempty"`
	CreateTime                           float64           `json:"createTime,omitempty"`
}

type ConfiguredTableAssociationAnalysisRule

type ConfiguredTableAssociationAnalysisRule struct {
	Policy                               map[string]any `json:"policy,omitempty"`
	ConfiguredTableAssociationIdentifier string         `json:"configuredTableAssociationIdentifier"`
	ConfiguredTableAssociationArn        string         `json:"configuredTableAssociationArn"`
	MembershipIdentifier                 string         `json:"membershipIdentifier"`
	MembershipArn                        string         `json:"membershipArn"`
	Type                                 string         `json:"type"`
	CreateTime                           float64        `json:"createTime,omitempty"`
	UpdateTime                           float64        `json:"updateTime,omitempty"`
}

type ConfiguredTableAssociationSummary

type ConfiguredTableAssociationSummary struct {
	ConfiguredTableAssociationIdentifier string  `json:"configuredTableAssociationIdentifier"`
	Arn                                  string  `json:"arn"`
	MembershipIdentifier                 string  `json:"membershipIdentifier"`
	MembershipArn                        string  `json:"membershipArn"`
	ConfiguredTableIdentifier            string  `json:"configuredTableIdentifier"`
	Name                                 string  `json:"name"`
	ID                                   string  `json:"id"`
	MembershipID                         string  `json:"membershipId"`
	ConfiguredTableID                    string  `json:"configuredTableId"`
	CreateTime                           float64 `json:"createTime,omitempty"`
	UpdateTime                           float64 `json:"updateTime,omitempty"`
}

type ConfiguredTableSummary

type ConfiguredTableSummary struct {
	ConfiguredTableIdentifier string   `json:"configuredTableIdentifier"`
	Arn                       string   `json:"arn"`
	Name                      string   `json:"name"`
	AnalysisMethod            string   `json:"analysisMethod,omitempty"`
	ID                        string   `json:"id"`
	AnalysisRuleTypes         []string `json:"analysisRuleTypes,omitempty"`
	CreateTime                float64  `json:"createTime,omitempty"`
	UpdateTime                float64  `json:"updateTime,omitempty"`
}

type Handler

type Handler struct {
	Backend   StorageBackend
	AccountID string
	Region    string
}

Handler handles AWS Clean Rooms HTTP requests.

func NewHandler

func NewHandler(backend StorageBackend) *Handler

NewHandler creates a new Clean Rooms handler.

func (*Handler) ExtractOperation

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

func (*Handler) ExtractResource

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

func (*Handler) GetSupportedOperations

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

func (*Handler) Handler

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

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

func (*Handler) Name

func (h *Handler) Name() string

func (*Handler) Reset

func (h *Handler) Reset()

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

func (*Handler) Snapshot

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

Snapshot implements persistence.Persistable by delegating to the backend. Handler previously had no Snapshot/Restore of its own -- and neither did InMemoryBackend -- so cli.go's generic setupPersistence (which type-asserts the registered service.Registerable, i.e. the Handler, for a Snapshot/Restore pair) never picked CleanRooms up at all: dead wiring, with no persistence underneath it either. This delegation (matching the codecommit/codepipeline/emr/workmail pattern) is what wires CleanRooms into persistence for the first time.

func (*Handler) StartWorker

func (h *Handler) StartWorker(_ context.Context) error

type IDMappingTable

type IDMappingTable struct {
	InputReferenceConfig     map[string]any    `json:"inputReferenceConfig,omitempty"`
	Tags                     map[string]string `json:"tags,omitempty"`
	InputReferenceProperties map[string]any    `json:"inputReferenceProperties,omitempty"`
	IDMappingTableIdentifier string            `json:"idMappingTableIdentifier"`
	KmsKeyArn                string            `json:"kmsKeyArn,omitempty"`
	MembershipIdentifier     string            `json:"membershipIdentifier"`
	Name                     string            `json:"name"`
	Description              string            `json:"description,omitempty"`
	CollaborationIdentifier  string            `json:"collaborationIdentifier"`
	CollaborationArn         string            `json:"collaborationArn"`
	MembershipArn            string            `json:"membershipArn"`
	Arn                      string            `json:"arn"`
	CollaborationID          string            `json:"collaborationId"`
	MembershipID             string            `json:"membershipId"`
	ID                       string            `json:"id"`
	UpdateTime               float64           `json:"updateTime,omitempty"`
	CreateTime               float64           `json:"createTime,omitempty"`
}

type IDMappingTableSummary

type IDMappingTableSummary struct {
	IDMappingTableIdentifier string  `json:"idMappingTableIdentifier"`
	Arn                      string  `json:"arn"`
	CollaborationArn         string  `json:"collaborationArn"`
	CollaborationIdentifier  string  `json:"collaborationIdentifier"`
	MembershipArn            string  `json:"membershipArn"`
	MembershipIdentifier     string  `json:"membershipIdentifier"`
	Name                     string  `json:"name"`
	ID                       string  `json:"id"`
	MembershipID             string  `json:"membershipId"`
	CollaborationID          string  `json:"collaborationId"`
	CreateTime               float64 `json:"createTime,omitempty"`
	UpdateTime               float64 `json:"updateTime,omitempty"`
}

type IDNamespaceAssociation

type IDNamespaceAssociation struct {
	InputReferenceConfig             map[string]any    `json:"inputReferenceConfig,omitempty"`
	Tags                             map[string]string `json:"tags,omitempty"`
	IDMappingConfig                  map[string]any    `json:"idMappingConfig,omitempty"`
	InputReferenceProperties         map[string]any    `json:"inputReferenceProperties,omitempty"`
	MembershipArn                    string            `json:"membershipArn"`
	MembershipIdentifier             string            `json:"membershipIdentifier"`
	Name                             string            `json:"name"`
	Description                      string            `json:"description,omitempty"`
	CollaborationIdentifier          string            `json:"collaborationIdentifier"`
	IDNamespaceAssociationIdentifier string            `json:"idNamespaceAssociationIdentifier"`
	CollaborationArn                 string            `json:"collaborationArn"`
	Arn                              string            `json:"arn"`
	ID                               string            `json:"id"`
	MembershipID                     string            `json:"membershipId"`
	CollaborationID                  string            `json:"collaborationId"`
	CreateTime                       float64           `json:"createTime,omitempty"`
	UpdateTime                       float64           `json:"updateTime,omitempty"`
}

type IDNamespaceAssociationSummary

type IDNamespaceAssociationSummary struct {
	IDNamespaceAssociationIdentifier string  `json:"idNamespaceAssociationIdentifier"`
	Arn                              string  `json:"arn"`
	CollaborationArn                 string  `json:"collaborationArn"`
	CollaborationIdentifier          string  `json:"collaborationIdentifier"`
	MembershipArn                    string  `json:"membershipArn"`
	MembershipIdentifier             string  `json:"membershipIdentifier"`
	Name                             string  `json:"name"`
	ID                               string  `json:"id"`
	MembershipID                     string  `json:"membershipId"`
	CollaborationID                  string  `json:"collaborationId"`
	CreateTime                       float64 `json:"createTime,omitempty"`
	UpdateTime                       float64 `json:"updateTime,omitempty"`
}

type InMemoryBackend

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

InMemoryBackend is the in-memory implementation of StorageBackend.

registry holds every converted resource table directly, including every composite-keyed one (see store_setup.go): each derives its store.Table key entirely from real, already-wire-visible identity field(s) already present on the value type (e.g. ConfiguredTableAnalysisRule carries both ConfiguredTableIdentifier and Type; AnalysisTemplate carries both MembershipIdentifier and its own ID), so plain registry.SnapshotAll/ RestoreAll round-trips every table losslessly with no DTO wrapper needed anywhere -- unlike services/workmail or services/codeartifact, which each hide at least one unexported field behind a DTO. See persistence.go.

tagsByArn is the one field left as a plain (non-store.Table) map: its values are map[string]string, not *T, so there is nothing for store.Table to key on. It is persisted directly (see persistence.go).

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new in-memory Clean Rooms backend.

func NewInMemoryBackendWithContext

func NewInMemoryBackendWithContext(_ context.Context, accountID, region string) *InMemoryBackend

NewInMemoryBackendWithContext creates a backend tied to svcCtx (ignored; no lifecycle goroutines).

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

func (*InMemoryBackend) BatchGetCollaborationAnalysisTemplate

func (b *InMemoryBackend) BatchGetCollaborationAnalysisTemplate(
	collaborationID string,
	templateArns []string,
) ([]*AnalysisTemplate, []BatchError, error)

func (*InMemoryBackend) BatchGetSchema

func (b *InMemoryBackend) BatchGetSchema(
	collaborationID string,
	names []string,
) ([]*Schema, []BatchError, error)

func (*InMemoryBackend) BatchGetSchemaAnalysisRule

func (b *InMemoryBackend) BatchGetSchemaAnalysisRule(
	collaborationID string,
	names []string,
	ruleType string,
) ([]*SchemaAnalysisRule, []BatchError, error)

func (*InMemoryBackend) CreateAnalysisTemplate

func (b *InMemoryBackend) CreateAnalysisTemplate(
	membershipID, name, description, format string,
	source map[string]any,
	analysisParameters []map[string]any,
	tags map[string]string,
) (*AnalysisTemplate, error)

func (*InMemoryBackend) CreateCollaboration

func (b *InMemoryBackend) CreateCollaboration(
	name, description, creatorDisplayName string,
	creatorMemberAbilities []string,
	members []MemberSpec,
	queryLogStatus string,
	tags map[string]string,
) (*Collaboration, error)

func (*InMemoryBackend) CreateCollaborationChangeRequest

func (b *InMemoryBackend) CreateCollaborationChangeRequest(
	collaborationID, changeRequestType string,
	details map[string]any,
) (*CollaborationChangeRequest, error)

func (*InMemoryBackend) CreateConfiguredAudienceModelAssociation

func (b *InMemoryBackend) CreateConfiguredAudienceModelAssociation(
	membershipID, configuredAudienceModelArn, name, description string,
	manageResourcePolicies bool,
	tags map[string]string,
) (*ConfiguredAudienceModelAssociation, error)

func (*InMemoryBackend) CreateConfiguredTable

func (b *InMemoryBackend) CreateConfiguredTable(
	name, description string,
	tableReference map[string]any,
	allowedColumns []string,
	analysisMethod string,
	tags map[string]string,
) (*ConfiguredTable, error)

func (*InMemoryBackend) CreateConfiguredTableAnalysisRule

func (b *InMemoryBackend) CreateConfiguredTableAnalysisRule(
	configuredTableID, analysisRuleType string,
	policy map[string]any,
) (*ConfiguredTableAnalysisRule, error)

func (*InMemoryBackend) CreateConfiguredTableAssociation

func (b *InMemoryBackend) CreateConfiguredTableAssociation(
	membershipID, name, description, configuredTableID, roleArn string,
	tags map[string]string,
) (*ConfiguredTableAssociation, error)

func (*InMemoryBackend) CreateConfiguredTableAssociationAnalysisRule

func (b *InMemoryBackend) CreateConfiguredTableAssociationAnalysisRule(
	membershipID, assocID, ruleType string,
	policy map[string]any,
) (*ConfiguredTableAssociationAnalysisRule, error)

func (*InMemoryBackend) CreateIDMappingTable

func (b *InMemoryBackend) CreateIDMappingTable(
	membershipID, name, description string,
	inputReferenceConfig map[string]any,
	kmsKeyArn string,
	tags map[string]string,
) (*IDMappingTable, error)

func (*InMemoryBackend) CreateIDNamespaceAssociation

func (b *InMemoryBackend) CreateIDNamespaceAssociation(
	membershipID, name, description string,
	inputReferenceConfig map[string]any,
	idMappingConfig map[string]any,
	tags map[string]string,
) (*IDNamespaceAssociation, error)

func (*InMemoryBackend) CreateMembership

func (b *InMemoryBackend) CreateMembership(
	collaborationID, queryLogStatus string,
	memberAbilities []string,
	defaultResultConfiguration map[string]any,
	paymentConfiguration map[string]any,
	tags map[string]string,
) (*Membership, error)

func (*InMemoryBackend) CreatePrivacyBudgetTemplate

func (b *InMemoryBackend) CreatePrivacyBudgetTemplate(
	membershipID, privacyBudgetType, autoRefresh string,
	parameters map[string]any,
	tags map[string]string,
) (*PrivacyBudgetTemplate, error)

func (*InMemoryBackend) DeleteAnalysisTemplate

func (b *InMemoryBackend) DeleteAnalysisTemplate(membershipID, templateID string) error

func (*InMemoryBackend) DeleteCollaboration

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

func (*InMemoryBackend) DeleteConfiguredAudienceModelAssociation

func (b *InMemoryBackend) DeleteConfiguredAudienceModelAssociation(
	membershipID, assocID string,
) error

func (*InMemoryBackend) DeleteConfiguredTable

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

func (*InMemoryBackend) DeleteConfiguredTableAnalysisRule

func (b *InMemoryBackend) DeleteConfiguredTableAnalysisRule(
	configuredTableID, analysisRuleType string,
) error

func (*InMemoryBackend) DeleteConfiguredTableAssociation

func (b *InMemoryBackend) DeleteConfiguredTableAssociation(membershipID, assocID string) error

func (*InMemoryBackend) DeleteConfiguredTableAssociationAnalysisRule

func (b *InMemoryBackend) DeleteConfiguredTableAssociationAnalysisRule(
	membershipID, assocID, ruleType string,
) error

func (*InMemoryBackend) DeleteIDMappingTable

func (b *InMemoryBackend) DeleteIDMappingTable(membershipID, tableID string) error

func (*InMemoryBackend) DeleteIDNamespaceAssociation

func (b *InMemoryBackend) DeleteIDNamespaceAssociation(membershipID, assocID string) error

func (*InMemoryBackend) DeleteMember

func (b *InMemoryBackend) DeleteMember(collaborationID, accountID string) error

func (*InMemoryBackend) DeleteMembership

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

func (*InMemoryBackend) DeletePrivacyBudgetTemplate

func (b *InMemoryBackend) DeletePrivacyBudgetTemplate(membershipID, templateID string) error

func (*InMemoryBackend) GetAnalysisTemplate

func (b *InMemoryBackend) GetAnalysisTemplate(
	membershipID, templateID string,
) (*AnalysisTemplate, error)

func (*InMemoryBackend) GetCollaboration

func (b *InMemoryBackend) GetCollaboration(id string) (*Collaboration, error)

func (*InMemoryBackend) GetCollaborationAnalysisTemplate

func (b *InMemoryBackend) GetCollaborationAnalysisTemplate(
	collaborationID, templateArn string,
) (*AnalysisTemplate, error)

func (*InMemoryBackend) GetCollaborationChangeRequest

func (b *InMemoryBackend) GetCollaborationChangeRequest(
	collaborationID, changeRequestID string,
) (*CollaborationChangeRequest, error)

func (*InMemoryBackend) GetCollaborationConfiguredAudienceModelAssociation

func (b *InMemoryBackend) GetCollaborationConfiguredAudienceModelAssociation(
	collaborationID, assocID string,
) (*ConfiguredAudienceModelAssociation, error)

func (*InMemoryBackend) GetCollaborationIDNamespaceAssociation

func (b *InMemoryBackend) GetCollaborationIDNamespaceAssociation(
	collaborationID, assocID string,
) (*IDNamespaceAssociation, error)

func (*InMemoryBackend) GetCollaborationPrivacyBudgetTemplate

func (b *InMemoryBackend) GetCollaborationPrivacyBudgetTemplate(
	collaborationID, templateID string,
) (*PrivacyBudgetTemplate, error)

func (*InMemoryBackend) GetConfiguredAudienceModelAssociation

func (b *InMemoryBackend) GetConfiguredAudienceModelAssociation(
	membershipID, assocID string,
) (*ConfiguredAudienceModelAssociation, error)

func (*InMemoryBackend) GetConfiguredTable

func (b *InMemoryBackend) GetConfiguredTable(id string) (*ConfiguredTable, error)

func (*InMemoryBackend) GetConfiguredTableAnalysisRule

func (b *InMemoryBackend) GetConfiguredTableAnalysisRule(
	configuredTableID, analysisRuleType string,
) (*ConfiguredTableAnalysisRule, error)

func (*InMemoryBackend) GetConfiguredTableAssociation

func (b *InMemoryBackend) GetConfiguredTableAssociation(
	membershipID, assocID string,
) (*ConfiguredTableAssociation, error)

func (*InMemoryBackend) GetConfiguredTableAssociationAnalysisRule

func (b *InMemoryBackend) GetConfiguredTableAssociationAnalysisRule(
	_, assocID, ruleType string,
) (*ConfiguredTableAssociationAnalysisRule, error)

func (*InMemoryBackend) GetIDMappingTable

func (b *InMemoryBackend) GetIDMappingTable(membershipID, tableID string) (*IDMappingTable, error)

func (*InMemoryBackend) GetIDNamespaceAssociation

func (b *InMemoryBackend) GetIDNamespaceAssociation(
	membershipID, assocID string,
) (*IDNamespaceAssociation, error)

func (*InMemoryBackend) GetMembership

func (b *InMemoryBackend) GetMembership(id string) (*Membership, error)

func (*InMemoryBackend) GetPrivacyBudgetTemplate

func (b *InMemoryBackend) GetPrivacyBudgetTemplate(
	membershipID, templateID string,
) (*PrivacyBudgetTemplate, error)

func (*InMemoryBackend) GetProtectedJob

func (b *InMemoryBackend) GetProtectedJob(membershipID, jobID string) (*ProtectedJob, error)

func (*InMemoryBackend) GetProtectedQuery

func (b *InMemoryBackend) GetProtectedQuery(membershipID, queryID string) (*ProtectedQuery, error)

func (*InMemoryBackend) GetSchema

func (b *InMemoryBackend) GetSchema(collaborationID, name string) (*Schema, error)

func (*InMemoryBackend) GetSchemaAnalysisRule

func (b *InMemoryBackend) GetSchemaAnalysisRule(
	collaborationID, name, ruleType string,
) (*SchemaAnalysisRule, error)

func (*InMemoryBackend) ListAnalysisTemplates

func (b *InMemoryBackend) ListAnalysisTemplates(
	membershipID, maxResults, nextToken string,
) ([]*AnalysisTemplateSummary, string, error)

func (*InMemoryBackend) ListCollaborationAnalysisTemplates

func (b *InMemoryBackend) ListCollaborationAnalysisTemplates(
	collaborationID, maxResults, nextToken string,
) ([]*AnalysisTemplateSummary, string, error)

func (*InMemoryBackend) ListCollaborationChangeRequests

func (b *InMemoryBackend) ListCollaborationChangeRequests(
	collaborationID, maxResults, nextToken string,
) ([]*CollaborationChangeRequest, string, error)

func (*InMemoryBackend) ListCollaborationConfiguredAudienceModelAssociations

func (b *InMemoryBackend) ListCollaborationConfiguredAudienceModelAssociations(
	collaborationID, maxResults, nextToken string,
) ([]*ConfiguredAudienceModelAssociationSummary, string, error)

func (*InMemoryBackend) ListCollaborationIDNamespaceAssociations

func (b *InMemoryBackend) ListCollaborationIDNamespaceAssociations(
	collaborationID, maxResults, nextToken string,
) ([]*IDNamespaceAssociationSummary, string, error)

func (*InMemoryBackend) ListCollaborationPrivacyBudgetTemplates

func (b *InMemoryBackend) ListCollaborationPrivacyBudgetTemplates(
	collaborationID, maxResults, nextToken string,
) ([]*PrivacyBudgetTemplateSummary, string, error)

func (*InMemoryBackend) ListCollaborationPrivacyBudgets

func (b *InMemoryBackend) ListCollaborationPrivacyBudgets(
	collaborationID, _, _, _ string,
) ([]*PrivacyBudget, string, error)

func (*InMemoryBackend) ListCollaborations

func (b *InMemoryBackend) ListCollaborations(
	_, maxResults, nextToken string,
) ([]*CollaborationSummary, string)

func (*InMemoryBackend) ListConfiguredAudienceModelAssociations

func (b *InMemoryBackend) ListConfiguredAudienceModelAssociations(
	membershipID, maxResults, nextToken string,
) ([]*ConfiguredAudienceModelAssociationSummary, string, error)

func (*InMemoryBackend) ListConfiguredTableAssociations

func (b *InMemoryBackend) ListConfiguredTableAssociations(
	membershipID, maxResults, nextToken string,
) ([]*ConfiguredTableAssociationSummary, string, error)

func (*InMemoryBackend) ListConfiguredTables

func (b *InMemoryBackend) ListConfiguredTables(
	maxResults, nextToken string,
) ([]*ConfiguredTableSummary, string)

func (*InMemoryBackend) ListIDMappingTables

func (b *InMemoryBackend) ListIDMappingTables(
	membershipID, maxResults, nextToken string,
) ([]*IDMappingTableSummary, string, error)

func (*InMemoryBackend) ListIDNamespaceAssociations

func (b *InMemoryBackend) ListIDNamespaceAssociations(
	membershipID, maxResults, nextToken string,
) ([]*IDNamespaceAssociationSummary, string, error)

func (*InMemoryBackend) ListMembers

func (b *InMemoryBackend) ListMembers(
	collaborationID string,
	maxResults, nextToken string,
) ([]*MemberSummary, string, error)

func (*InMemoryBackend) ListMemberships

func (b *InMemoryBackend) ListMemberships(
	status, maxResults, nextToken string,
) ([]*MembershipSummary, string)

func (*InMemoryBackend) ListPrivacyBudgetTemplates

func (b *InMemoryBackend) ListPrivacyBudgetTemplates(
	membershipID, privacyBudgetType, maxResults, nextToken string,
) ([]*PrivacyBudgetTemplateSummary, string, error)

func (*InMemoryBackend) ListPrivacyBudgets

func (b *InMemoryBackend) ListPrivacyBudgets(
	membershipID, _, _, _ string,
) ([]*PrivacyBudget, string, error)

func (*InMemoryBackend) ListProtectedJobs

func (b *InMemoryBackend) ListProtectedJobs(
	membershipID, status, maxResults, nextToken string,
) ([]*ProtectedJobSummary, string, error)

func (*InMemoryBackend) ListProtectedQueries

func (b *InMemoryBackend) ListProtectedQueries(
	membershipID, status, maxResults, nextToken string,
) ([]*ProtectedQuerySummary, string, error)

func (*InMemoryBackend) ListSchemas

func (b *InMemoryBackend) ListSchemas(
	collaborationID, schemaType, maxResults, nextToken string,
) ([]*SchemaSummary, string, error)

func (*InMemoryBackend) ListTagsForResource

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

func (*InMemoryBackend) PopulateIDMappingTable

func (b *InMemoryBackend) PopulateIDMappingTable(
	membershipID, tableID string,
) (map[string]any, error)

func (*InMemoryBackend) PreviewPrivacyImpact

func (b *InMemoryBackend) PreviewPrivacyImpact(
	membershipID string,
	_ map[string]any,
) (map[string]any, error)

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

func (*InMemoryBackend) Restore

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

Restore deserializes backend state from a snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) Snapshot

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

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

func (*InMemoryBackend) StartProtectedJob

func (b *InMemoryBackend) StartProtectedJob(
	membershipID, jobType string,
	jobParameters map[string]any,
	resultConfig map[string]any,
) (*ProtectedJob, error)

func (*InMemoryBackend) StartProtectedQuery

func (b *InMemoryBackend) StartProtectedQuery(
	membershipID, sqlText string,
	resultConfig map[string]any,
	computeConfiguration map[string]any,
) (*ProtectedQuery, error)

func (*InMemoryBackend) TagResource

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

func (*InMemoryBackend) UntagResource

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

func (*InMemoryBackend) UpdateAnalysisTemplate

func (b *InMemoryBackend) UpdateAnalysisTemplate(
	membershipID, templateID, description string,
) (*AnalysisTemplate, error)

func (*InMemoryBackend) UpdateCollaboration

func (b *InMemoryBackend) UpdateCollaboration(
	id, name, description string,
) (*Collaboration, error)

func (*InMemoryBackend) UpdateCollaborationChangeRequest

func (b *InMemoryBackend) UpdateCollaborationChangeRequest(
	collaborationID, changeRequestID, status string,
) (*CollaborationChangeRequest, error)

func (*InMemoryBackend) UpdateConfiguredAudienceModelAssociation

func (b *InMemoryBackend) UpdateConfiguredAudienceModelAssociation(
	membershipID, assocID, name, description string,
) (*ConfiguredAudienceModelAssociation, error)

func (*InMemoryBackend) UpdateConfiguredTable

func (b *InMemoryBackend) UpdateConfiguredTable(
	id, name, description string,
) (*ConfiguredTable, error)

func (*InMemoryBackend) UpdateConfiguredTableAnalysisRule

func (b *InMemoryBackend) UpdateConfiguredTableAnalysisRule(
	configuredTableID, analysisRuleType string,
	policy map[string]any,
) (*ConfiguredTableAnalysisRule, error)

func (*InMemoryBackend) UpdateConfiguredTableAssociation

func (b *InMemoryBackend) UpdateConfiguredTableAssociation(
	membershipID, assocID, description, roleArn string,
) (*ConfiguredTableAssociation, error)

func (*InMemoryBackend) UpdateConfiguredTableAssociationAnalysisRule

func (b *InMemoryBackend) UpdateConfiguredTableAssociationAnalysisRule(
	_, assocID, ruleType string,
	policy map[string]any,
) (*ConfiguredTableAssociationAnalysisRule, error)

func (*InMemoryBackend) UpdateIDMappingTable

func (b *InMemoryBackend) UpdateIDMappingTable(
	membershipID, tableID, description, kmsKeyArn string,
) (*IDMappingTable, error)

func (*InMemoryBackend) UpdateIDNamespaceAssociation

func (b *InMemoryBackend) UpdateIDNamespaceAssociation(
	membershipID, assocID, description string,
	idMappingConfig map[string]any,
) (*IDNamespaceAssociation, error)

func (*InMemoryBackend) UpdateMembership

func (b *InMemoryBackend) UpdateMembership(
	id, queryLogStatus string,
	defaultResultConfiguration map[string]any,
) (*Membership, error)

func (*InMemoryBackend) UpdatePrivacyBudgetTemplate

func (b *InMemoryBackend) UpdatePrivacyBudgetTemplate(
	membershipID, templateID, autoRefresh string,
	parameters map[string]any,
) (*PrivacyBudgetTemplate, error)

func (*InMemoryBackend) UpdateProtectedJob

func (b *InMemoryBackend) UpdateProtectedJob(
	membershipID, jobID, targetStatus string,
) (*ProtectedJob, error)

func (*InMemoryBackend) UpdateProtectedQuery

func (b *InMemoryBackend) UpdateProtectedQuery(
	membershipID, queryID, targetStatus string,
) (*ProtectedQuery, error)

type MemberSpec

type MemberSpec struct {
	PaymentConfig map[string]any `json:"paymentConfiguration,omitempty"`
	AccountID     string         `json:"accountId"`
	DisplayName   string         `json:"displayName"`
	Abilities     []string       `json:"memberAbilities"`
}

type MemberSummary

type MemberSummary struct {
	AccountID   string   `json:"accountId"`
	DisplayName string   `json:"displayName"`
	Status      string   `json:"status"`
	Abilities   []string `json:"abilities"`
	CreateTime  float64  `json:"createTime,omitempty"`
	UpdateTime  float64  `json:"updateTime,omitempty"`
}

type Membership

type Membership struct {
	DefaultResultConfiguration      map[string]any `json:"defaultResultConfiguration,omitempty"`
	PaymentConfiguration            map[string]any `json:"paymentConfiguration,omitempty"`
	QueryLogStatus                  string         `json:"queryLogStatus,omitempty"`
	CollaborationIdentifier         string         `json:"collaborationIdentifier"`
	CollaborationCreatorAccountID   string         `json:"collaborationCreatorAccountId"`
	CollaborationCreatorDisplayName string         `json:"collaborationCreatorDisplayName"`
	MembershipIdentifier            string         `json:"membershipIdentifier"`
	Status                          string         `json:"status"`
	CollaborationName               string         `json:"collaborationName"`
	CollaborationArn                string         `json:"collaborationArn"`
	Arn                             string         `json:"arn"`
	CollaborationID                 string         `json:"collaborationId"`
	ID                              string         `json:"id"`
	MemberAbilities                 []string       `json:"memberAbilities,omitempty"`
	UpdateTime                      float64        `json:"updateTime,omitempty"`
	CreateTime                      float64        `json:"createTime,omitempty"`
}

type MembershipSummary

type MembershipSummary struct {
	CollaborationName               string   `json:"collaborationName"`
	Arn                             string   `json:"arn"`
	CollaborationIdentifier         string   `json:"collaborationIdentifier"`
	CollaborationArn                string   `json:"collaborationArn"`
	CollaborationCreatorAccountID   string   `json:"collaborationCreatorAccountId"`
	CollaborationCreatorDisplayName string   `json:"collaborationCreatorDisplayName"`
	MembershipIdentifier            string   `json:"membershipIdentifier"`
	Status                          string   `json:"status"`
	ID                              string   `json:"id"`
	CollaborationID                 string   `json:"collaborationId"`
	MemberAbilities                 []string `json:"memberAbilities,omitempty"`
	CreateTime                      float64  `json:"createTime,omitempty"`
	UpdateTime                      float64  `json:"updateTime,omitempty"`
}

type PrivacyBudget

type PrivacyBudget struct {
	Budget                          map[string]any `json:"budget,omitempty"`
	ID                              string         `json:"id"`
	PrivacyBudgetTemplateArn        string         `json:"privacyBudgetTemplateArn"`
	PrivacyBudgetTemplateIdentifier string         `json:"privacyBudgetTemplateIdentifier"`
	CollaborationArn                string         `json:"collaborationArn"`
	CollaborationIdentifier         string         `json:"collaborationIdentifier"`
	MembershipArn                   string         `json:"membershipArn"`
	MembershipIdentifier            string         `json:"membershipIdentifier"`
	PrivacyBudgetType               string         `json:"privacyBudgetType"`
	MembershipID                    string         `json:"membershipId"`
	CollaborationID                 string         `json:"collaborationId"`
}

type PrivacyBudgetTemplate

type PrivacyBudgetTemplate struct {
	Parameters                      map[string]any    `json:"parameters,omitempty"`
	Tags                            map[string]string `json:"tags,omitempty"`
	MembershipArn                   string            `json:"membershipArn"`
	Arn                             string            `json:"arn"`
	CollaborationArn                string            `json:"collaborationArn"`
	CollaborationIdentifier         string            `json:"collaborationIdentifier"`
	PrivacyBudgetTemplateIdentifier string            `json:"privacyBudgetTemplateIdentifier"`
	MembershipIdentifier            string            `json:"membershipIdentifier"`
	PrivacyBudgetType               string            `json:"privacyBudgetType"`
	AutoRefresh                     string            `json:"autoRefresh,omitempty"`
	ID                              string            `json:"id"`
	MembershipID                    string            `json:"membershipId"`
	CollaborationID                 string            `json:"collaborationId"`
	CreateTime                      float64           `json:"createTime,omitempty"`
	UpdateTime                      float64           `json:"updateTime,omitempty"`
}

type PrivacyBudgetTemplateSummary

type PrivacyBudgetTemplateSummary struct {
	PrivacyBudgetTemplateIdentifier string  `json:"privacyBudgetTemplateIdentifier"`
	Arn                             string  `json:"arn"`
	CollaborationArn                string  `json:"collaborationArn"`
	CollaborationIdentifier         string  `json:"collaborationIdentifier"`
	MembershipArn                   string  `json:"membershipArn"`
	MembershipIdentifier            string  `json:"membershipIdentifier"`
	PrivacyBudgetType               string  `json:"privacyBudgetType"`
	ID                              string  `json:"id"`
	MembershipID                    string  `json:"membershipId"`
	CollaborationID                 string  `json:"collaborationId"`
	CreateTime                      float64 `json:"createTime,omitempty"`
	UpdateTime                      float64 `json:"updateTime,omitempty"`
}

type ProtectedJob

type ProtectedJob struct {
	JobParameters        map[string]any `json:"jobParameters,omitempty"`
	ResultConfiguration  map[string]any `json:"resultConfiguration,omitempty"`
	Statistics           map[string]any `json:"statistics,omitempty"`
	Result               map[string]any `json:"result,omitempty"`
	Error                map[string]any `json:"error,omitempty"`
	ID                   string         `json:"id"`
	MembershipIdentifier string         `json:"membershipIdentifier"`
	MembershipArn        string         `json:"membershipArn"`
	Status               string         `json:"status"`
	Type                 string         `json:"type"`
	MembershipID         string         `json:"membershipId"`
	CreateTime           float64        `json:"createTime,omitempty"`
}

type ProtectedJobSummary

type ProtectedJobSummary struct {
	ID                   string  `json:"id"`
	MembershipIdentifier string  `json:"membershipIdentifier"`
	MembershipArn        string  `json:"membershipArn"`
	Status               string  `json:"status"`
	Type                 string  `json:"type"`
	MembershipID         string  `json:"membershipId"`
	CreateTime           float64 `json:"createTime,omitempty"`
}

type ProtectedQuery

type ProtectedQuery struct {
	SQLParameters        map[string]any `json:"sqlParameters,omitempty"`
	ResultConfiguration  map[string]any `json:"resultConfiguration,omitempty"`
	ComputeConfiguration map[string]any `json:"computeConfiguration,omitempty"`
	Statistics           map[string]any `json:"statistics,omitempty"`
	Result               map[string]any `json:"result,omitempty"`
	Error                map[string]any `json:"error,omitempty"`
	ID                   string         `json:"id"`
	MembershipIdentifier string         `json:"membershipIdentifier"`
	MembershipArn        string         `json:"membershipArn"`
	Status               string         `json:"status"`
	MembershipID         string         `json:"membershipId"`
	CreateTime           float64        `json:"createTime,omitempty"`
}

type ProtectedQuerySummary

type ProtectedQuerySummary struct {
	ID                   string  `json:"id"`
	MembershipIdentifier string  `json:"membershipIdentifier"`
	MembershipArn        string  `json:"membershipArn"`
	Status               string  `json:"status"`
	MembershipID         string  `json:"membershipId"`
	CreateTime           float64 `json:"createTime,omitempty"`
}

type Provider

type Provider struct{}

Provider implements service.Provider for AWS Clean Rooms.

func (*Provider) Init

Init initializes the Clean Rooms service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type Schema

type Schema struct {
	CollaborationArn        string           `json:"collaborationArn"`
	CollaborationIdentifier string           `json:"collaborationIdentifier"`
	CreatorAccountID        string           `json:"creatorAccountId"`
	Name                    string           `json:"name"`
	Type                    string           `json:"type"`
	AnalysisMethod          string           `json:"analysisMethod,omitempty"`
	Columns                 []map[string]any `json:"columns,omitempty"`
	PartitionKeys           []map[string]any `json:"partitionKeys,omitempty"`
	AnalysisRuleTypes       []string         `json:"analysisRuleTypes,omitempty"`
	CreateTime              float64          `json:"createTime,omitempty"`
	UpdateTime              float64          `json:"updateTime,omitempty"`
}

type SchemaAnalysisRule

type SchemaAnalysisRule struct {
	Policy                  map[string]any `json:"policy,omitempty"`
	CollaborationArn        string         `json:"collaborationArn"`
	CollaborationIdentifier string         `json:"collaborationIdentifier"`
	Name                    string         `json:"name"`
	Type                    string         `json:"type"`
	CreateTime              float64        `json:"createTime,omitempty"`
	UpdateTime              float64        `json:"updateTime,omitempty"`
}

type SchemaSummary

type SchemaSummary struct {
	CollaborationArn        string   `json:"collaborationArn"`
	CollaborationIdentifier string   `json:"collaborationIdentifier"`
	CreatorAccountID        string   `json:"creatorAccountId"`
	Name                    string   `json:"name"`
	Type                    string   `json:"type"`
	AnalysisMethod          string   `json:"analysisMethod,omitempty"`
	AnalysisRuleTypes       []string `json:"analysisRuleTypes,omitempty"`
	CreateTime              float64  `json:"createTime,omitempty"`
	UpdateTime              float64  `json:"updateTime,omitempty"`
}

type StorageBackend

type StorageBackend interface {
	Region() string
	AccountID() string
	Reset()

	// Snapshot and Restore implement persistence.Persistable. Handler
	// delegates to them (see persistence.go) so cli.go's generic
	// setupPersistence picks CleanRooms up.
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error

	// Collaboration operations.
	CreateCollaboration(
		name, description, creatorDisplayName string,
		creatorMemberAbilities []string,
		members []MemberSpec,
		queryLogStatus string,
		tags map[string]string,
	) (*Collaboration, error)
	GetCollaboration(id string) (*Collaboration, error)
	ListCollaborations(memberStatus, maxResults, nextToken string) ([]*CollaborationSummary, string)
	UpdateCollaboration(id, name, description string) (*Collaboration, error)
	DeleteCollaboration(id string) error
	ListMembers(
		collaborationID string,
		maxResults, nextToken string,
	) ([]*MemberSummary, string, error)
	DeleteMember(collaborationID, accountID string) error

	// Membership operations.
	CreateMembership(
		collaborationID, queryLogStatus string,
		memberAbilities []string,
		defaultResultConfiguration map[string]any,
		paymentConfiguration map[string]any,
		tags map[string]string,
	) (*Membership, error)
	GetMembership(id string) (*Membership, error)
	ListMemberships(status, maxResults, nextToken string) ([]*MembershipSummary, string)
	UpdateMembership(
		id, queryLogStatus string,
		defaultResultConfiguration map[string]any,
	) (*Membership, error)
	DeleteMembership(id string) error

	// ConfiguredTable operations.
	CreateConfiguredTable(
		name, description string,
		tableReference map[string]any,
		allowedColumns []string,
		analysisMethod string,
		tags map[string]string,
	) (*ConfiguredTable, error)
	GetConfiguredTable(id string) (*ConfiguredTable, error)
	ListConfiguredTables(maxResults, nextToken string) ([]*ConfiguredTableSummary, string)
	UpdateConfiguredTable(id, name, description string) (*ConfiguredTable, error)
	DeleteConfiguredTable(id string) error

	// ConfiguredTableAnalysisRule operations.
	CreateConfiguredTableAnalysisRule(
		configuredTableID, analysisRuleType string,
		policy map[string]any,
	) (*ConfiguredTableAnalysisRule, error)
	GetConfiguredTableAnalysisRule(
		configuredTableID, analysisRuleType string,
	) (*ConfiguredTableAnalysisRule, error)
	UpdateConfiguredTableAnalysisRule(
		configuredTableID, analysisRuleType string,
		policy map[string]any,
	) (*ConfiguredTableAnalysisRule, error)
	DeleteConfiguredTableAnalysisRule(configuredTableID, analysisRuleType string) error

	// ConfiguredTableAssociation operations.
	CreateConfiguredTableAssociation(
		membershipID, name, description, configuredTableID, roleArn string,
		tags map[string]string,
	) (*ConfiguredTableAssociation, error)
	GetConfiguredTableAssociation(membershipID, assocID string) (*ConfiguredTableAssociation, error)
	ListConfiguredTableAssociations(
		membershipID, maxResults, nextToken string,
	) ([]*ConfiguredTableAssociationSummary, string, error)
	UpdateConfiguredTableAssociation(
		membershipID, assocID, description, roleArn string,
	) (*ConfiguredTableAssociation, error)
	DeleteConfiguredTableAssociation(membershipID, assocID string) error

	// ConfiguredTableAssociationAnalysisRule operations.
	CreateConfiguredTableAssociationAnalysisRule(
		membershipID, assocID, ruleType string,
		policy map[string]any,
	) (*ConfiguredTableAssociationAnalysisRule, error)
	GetConfiguredTableAssociationAnalysisRule(
		membershipID, assocID, ruleType string,
	) (*ConfiguredTableAssociationAnalysisRule, error)
	UpdateConfiguredTableAssociationAnalysisRule(
		membershipID, assocID, ruleType string,
		policy map[string]any,
	) (*ConfiguredTableAssociationAnalysisRule, error)
	DeleteConfiguredTableAssociationAnalysisRule(membershipID, assocID, ruleType string) error

	// AnalysisTemplate operations.
	CreateAnalysisTemplate(
		membershipID, name, description, format string,
		source map[string]any,
		analysisParameters []map[string]any,
		tags map[string]string,
	) (*AnalysisTemplate, error)
	GetAnalysisTemplate(membershipID, templateID string) (*AnalysisTemplate, error)
	ListAnalysisTemplates(
		membershipID, maxResults, nextToken string,
	) ([]*AnalysisTemplateSummary, string, error)
	UpdateAnalysisTemplate(membershipID, templateID, description string) (*AnalysisTemplate, error)
	DeleteAnalysisTemplate(membershipID, templateID string) error

	// Collaboration AnalysisTemplate operations (read-only views).
	GetCollaborationAnalysisTemplate(collaborationID, templateArn string) (*AnalysisTemplate, error)
	ListCollaborationAnalysisTemplates(
		collaborationID, maxResults, nextToken string,
	) ([]*AnalysisTemplateSummary, string, error)
	BatchGetCollaborationAnalysisTemplate(
		collaborationID string,
		templateArns []string,
	) ([]*AnalysisTemplate, []BatchError, error)

	// Schema operations.
	GetSchema(collaborationID, name string) (*Schema, error)
	ListSchemas(
		collaborationID, schemaType, maxResults, nextToken string,
	) ([]*SchemaSummary, string, error)
	BatchGetSchema(collaborationID string, names []string) ([]*Schema, []BatchError, error)
	GetSchemaAnalysisRule(collaborationID, name, ruleType string) (*SchemaAnalysisRule, error)
	BatchGetSchemaAnalysisRule(
		collaborationID string,
		names []string,
		ruleType string,
	) ([]*SchemaAnalysisRule, []BatchError, error)

	// ProtectedQuery operations.
	StartProtectedQuery(
		membershipID, sqlText string,
		resultConfig map[string]any,
		computeConfiguration map[string]any,
	) (*ProtectedQuery, error)
	GetProtectedQuery(membershipID, queryID string) (*ProtectedQuery, error)
	ListProtectedQueries(
		membershipID, status, maxResults, nextToken string,
	) ([]*ProtectedQuerySummary, string, error)
	UpdateProtectedQuery(membershipID, queryID, status string) (*ProtectedQuery, error)

	// ProtectedJob operations.
	StartProtectedJob(
		membershipID, jobType string,
		jobParameters map[string]any,
		resultConfig map[string]any,
	) (*ProtectedJob, error)
	GetProtectedJob(membershipID, jobID string) (*ProtectedJob, error)
	ListProtectedJobs(
		membershipID, status, maxResults, nextToken string,
	) ([]*ProtectedJobSummary, string, error)
	UpdateProtectedJob(membershipID, jobID, status string) (*ProtectedJob, error)

	// PrivacyBudgetTemplate operations.
	CreatePrivacyBudgetTemplate(
		membershipID, privacyBudgetType, autoRefresh string,
		parameters map[string]any,
		tags map[string]string,
	) (*PrivacyBudgetTemplate, error)
	GetPrivacyBudgetTemplate(membershipID, templateID string) (*PrivacyBudgetTemplate, error)
	ListPrivacyBudgetTemplates(
		membershipID, privacyBudgetType, maxResults, nextToken string,
	) ([]*PrivacyBudgetTemplateSummary, string, error)
	UpdatePrivacyBudgetTemplate(
		membershipID, templateID, autoRefresh string,
		parameters map[string]any,
	) (*PrivacyBudgetTemplate, error)
	DeletePrivacyBudgetTemplate(membershipID, templateID string) error

	// PrivacyBudget operations (read-only).
	ListPrivacyBudgets(
		membershipID, privacyBudgetType, maxResults, nextToken string,
	) ([]*PrivacyBudget, string, error)
	ListCollaborationPrivacyBudgets(
		collaborationID, privacyBudgetType, maxResults, nextToken string,
	) ([]*PrivacyBudget, string, error)
	GetCollaborationPrivacyBudgetTemplate(
		collaborationID, templateID string,
	) (*PrivacyBudgetTemplate, error)
	ListCollaborationPrivacyBudgetTemplates(
		collaborationID, maxResults, nextToken string,
	) ([]*PrivacyBudgetTemplateSummary, string, error)
	PreviewPrivacyImpact(membershipID string, parameters map[string]any) (map[string]any, error)

	// IDMappingTable operations.
	CreateIDMappingTable(
		membershipID, name, description string,
		inputReferenceConfig map[string]any,
		kmsKeyArn string,
		tags map[string]string,
	) (*IDMappingTable, error)
	GetIDMappingTable(membershipID, tableID string) (*IDMappingTable, error)
	ListIDMappingTables(
		membershipID, maxResults, nextToken string,
	) ([]*IDMappingTableSummary, string, error)
	UpdateIDMappingTable(
		membershipID, tableID, description, kmsKeyArn string,
	) (*IDMappingTable, error)
	DeleteIDMappingTable(membershipID, tableID string) error
	PopulateIDMappingTable(membershipID, tableID string) (map[string]any, error)

	// IDNamespaceAssociation operations.
	CreateIDNamespaceAssociation(
		membershipID, name, description string,
		inputReferenceConfig map[string]any,
		idMappingConfig map[string]any,
		tags map[string]string,
	) (*IDNamespaceAssociation, error)
	GetIDNamespaceAssociation(membershipID, assocID string) (*IDNamespaceAssociation, error)
	ListIDNamespaceAssociations(
		membershipID, maxResults, nextToken string,
	) ([]*IDNamespaceAssociationSummary, string, error)
	UpdateIDNamespaceAssociation(
		membershipID, assocID, description string,
		idMappingConfig map[string]any,
	) (*IDNamespaceAssociation, error)
	DeleteIDNamespaceAssociation(membershipID, assocID string) error
	GetCollaborationIDNamespaceAssociation(
		collaborationID, assocID string,
	) (*IDNamespaceAssociation, error)
	ListCollaborationIDNamespaceAssociations(
		collaborationID, maxResults, nextToken string,
	) ([]*IDNamespaceAssociationSummary, string, error)

	// ConfiguredAudienceModelAssociation operations.
	CreateConfiguredAudienceModelAssociation(
		membershipID, configuredAudienceModelArn, name, description string,
		manageResourcePolicies bool,
		tags map[string]string,
	) (*ConfiguredAudienceModelAssociation, error)
	GetConfiguredAudienceModelAssociation(
		membershipID, assocID string,
	) (*ConfiguredAudienceModelAssociation, error)
	ListConfiguredAudienceModelAssociations(
		membershipID, maxResults, nextToken string,
	) ([]*ConfiguredAudienceModelAssociationSummary, string, error)
	UpdateConfiguredAudienceModelAssociation(
		membershipID, assocID, name, description string,
	) (*ConfiguredAudienceModelAssociation, error)
	DeleteConfiguredAudienceModelAssociation(membershipID, assocID string) error
	GetCollaborationConfiguredAudienceModelAssociation(
		collaborationID, assocID string,
	) (*ConfiguredAudienceModelAssociation, error)
	ListCollaborationConfiguredAudienceModelAssociations(
		collaborationID, maxResults, nextToken string,
	) ([]*ConfiguredAudienceModelAssociationSummary, string, error)

	// CollaborationChangeRequest operations.
	CreateCollaborationChangeRequest(
		collaborationID, changeRequestType string,
		details map[string]any,
	) (*CollaborationChangeRequest, error)
	GetCollaborationChangeRequest(
		collaborationID, changeRequestID string,
	) (*CollaborationChangeRequest, error)
	ListCollaborationChangeRequests(
		collaborationID, maxResults, nextToken string,
	) ([]*CollaborationChangeRequest, string, error)
	UpdateCollaborationChangeRequest(
		collaborationID, changeRequestID, status string,
	) (*CollaborationChangeRequest, error)

	// Tag operations.
	ListTagsForResource(resourceArn string) (map[string]string, error)
	TagResource(resourceArn string, tags map[string]string) error
	UntagResource(resourceArn string, tagKeys []string) error
}

StorageBackend defines the interface for all Clean Rooms backend operations.

Jump to

Keyboard shortcuts

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