Documentation
¶
Index ¶
- Variables
- type AnalysisTemplate
- type AnalysisTemplateSummary
- type BatchError
- type Collaboration
- type CollaborationChangeRequest
- type CollaborationSummary
- type ConfiguredAudienceModelAssociation
- type ConfiguredAudienceModelAssociationSummary
- type ConfiguredTable
- type ConfiguredTableAnalysisRule
- type ConfiguredTableAssociation
- type ConfiguredTableAssociationAnalysisRule
- type ConfiguredTableAssociationSummary
- type ConfiguredTableSummary
- type Handler
- func (h *Handler) ExtractOperation(c *echo.Context) string
- func (h *Handler) ExtractResource(c *echo.Context) string
- func (h *Handler) GetSupportedOperations() []string
- func (h *Handler) Handler() echo.HandlerFunc
- func (h *Handler) MatchPriority() int
- func (h *Handler) Name() string
- func (h *Handler) Reset()
- func (h *Handler) Restore(ctx context.Context, data []byte) error
- func (h *Handler) RouteMatcher() service.Matcher
- func (h *Handler) Snapshot(ctx context.Context) []byte
- func (h *Handler) StartWorker(_ context.Context) error
- type IDMappingTable
- type IDMappingTableSummary
- type IDNamespaceAssociation
- type IDNamespaceAssociationSummary
- type InMemoryBackend
- func (b *InMemoryBackend) AccountID() string
- func (b *InMemoryBackend) BatchGetCollaborationAnalysisTemplate(collaborationID string, templateArns []string) ([]*AnalysisTemplate, []BatchError, error)
- func (b *InMemoryBackend) BatchGetSchema(collaborationID string, names []string) ([]*Schema, []BatchError, error)
- func (b *InMemoryBackend) BatchGetSchemaAnalysisRule(collaborationID string, names []string, ruleType string) ([]*SchemaAnalysisRule, []BatchError, error)
- func (b *InMemoryBackend) CreateAnalysisTemplate(membershipID, name, description, format string, source map[string]any, ...) (*AnalysisTemplate, error)
- func (b *InMemoryBackend) CreateCollaboration(name, description, creatorDisplayName string, creatorMemberAbilities []string, ...) (*Collaboration, error)
- func (b *InMemoryBackend) CreateCollaborationChangeRequest(collaborationID string, changes []map[string]any) (*CollaborationChangeRequest, error)
- func (b *InMemoryBackend) CreateConfiguredAudienceModelAssociation(membershipID, configuredAudienceModelArn, name, description string, ...) (*ConfiguredAudienceModelAssociation, error)
- func (b *InMemoryBackend) CreateConfiguredTable(name, description string, tableReference map[string]any, ...) (*ConfiguredTable, error)
- func (b *InMemoryBackend) CreateConfiguredTableAnalysisRule(configuredTableID, analysisRuleType string, policy map[string]any) (*ConfiguredTableAnalysisRule, error)
- func (b *InMemoryBackend) CreateConfiguredTableAssociation(membershipID, name, description, configuredTableID, roleArn string, ...) (*ConfiguredTableAssociation, error)
- func (b *InMemoryBackend) CreateConfiguredTableAssociationAnalysisRule(membershipID, assocID, ruleType string, policy map[string]any) (*ConfiguredTableAssociationAnalysisRule, error)
- func (b *InMemoryBackend) CreateIDMappingTable(membershipID, name, description string, inputReferenceConfig map[string]any, ...) (*IDMappingTable, error)
- func (b *InMemoryBackend) CreateIDNamespaceAssociation(membershipID, name, description string, inputReferenceConfig map[string]any, ...) (*IDNamespaceAssociation, error)
- func (b *InMemoryBackend) CreateIntermediateTable(membershipID, name, description, kmsKeyArn string, ...) (*IntermediateTable, error)
- func (b *InMemoryBackend) CreateIntermediateTableAnalysisRule(membershipID, tableID, ruleType string, policy map[string]any) (*IntermediateTableAnalysisRule, error)
- func (b *InMemoryBackend) CreateMembership(collaborationID, queryLogStatus string, memberAbilities []string, ...) (*Membership, error)
- func (b *InMemoryBackend) CreatePrivacyBudgetTemplate(membershipID, privacyBudgetType, autoRefresh string, parameters map[string]any, ...) (*PrivacyBudgetTemplate, error)
- func (b *InMemoryBackend) DeleteAnalysisTemplate(membershipID, templateID string) error
- func (b *InMemoryBackend) DeleteCollaboration(id string) error
- func (b *InMemoryBackend) DeleteConfiguredAudienceModelAssociation(membershipID, assocID string) error
- func (b *InMemoryBackend) DeleteConfiguredTable(id string) error
- func (b *InMemoryBackend) DeleteConfiguredTableAnalysisRule(configuredTableID, analysisRuleType string) error
- func (b *InMemoryBackend) DeleteConfiguredTableAssociation(membershipID, assocID string) error
- func (b *InMemoryBackend) DeleteConfiguredTableAssociationAnalysisRule(membershipID, assocID, ruleType string) error
- func (b *InMemoryBackend) DeleteIDMappingTable(membershipID, tableID string) error
- func (b *InMemoryBackend) DeleteIDNamespaceAssociation(membershipID, assocID string) error
- func (b *InMemoryBackend) DeleteIntermediateTable(membershipID, tableID string) error
- func (b *InMemoryBackend) DeleteIntermediateTableAnalysisRule(membershipID, tableID, ruleType string) error
- func (b *InMemoryBackend) DeleteMember(collaborationID, accountID string) error
- func (b *InMemoryBackend) DeleteMembership(id string) error
- func (b *InMemoryBackend) DeletePrivacyBudgetTemplate(membershipID, templateID string) error
- func (b *InMemoryBackend) DisallowIntermediateTable(membershipID, name string, includeDescendants bool) error
- func (b *InMemoryBackend) GetAnalysisTemplate(membershipID, templateID string) (*AnalysisTemplate, error)
- func (b *InMemoryBackend) GetCollaboration(id string) (*Collaboration, error)
- func (b *InMemoryBackend) GetCollaborationAnalysisTemplate(collaborationID, templateArn string) (*AnalysisTemplate, error)
- func (b *InMemoryBackend) GetCollaborationChangeRequest(collaborationID, changeRequestID string) (*CollaborationChangeRequest, error)
- func (b *InMemoryBackend) GetCollaborationConfiguredAudienceModelAssociation(collaborationID, assocID string) (*ConfiguredAudienceModelAssociation, error)
- func (b *InMemoryBackend) GetCollaborationIDNamespaceAssociation(collaborationID, assocID string) (*IDNamespaceAssociation, error)
- func (b *InMemoryBackend) GetCollaborationPrivacyBudgetTemplate(collaborationID, templateID string) (*PrivacyBudgetTemplate, error)
- func (b *InMemoryBackend) GetConfiguredAudienceModelAssociation(membershipID, assocID string) (*ConfiguredAudienceModelAssociation, error)
- func (b *InMemoryBackend) GetConfiguredTable(id string) (*ConfiguredTable, error)
- func (b *InMemoryBackend) GetConfiguredTableAnalysisRule(configuredTableID, analysisRuleType string) (*ConfiguredTableAnalysisRule, error)
- func (b *InMemoryBackend) GetConfiguredTableAssociation(membershipID, assocID string) (*ConfiguredTableAssociation, error)
- func (b *InMemoryBackend) GetConfiguredTableAssociationAnalysisRule(_, assocID, ruleType string) (*ConfiguredTableAssociationAnalysisRule, error)
- func (b *InMemoryBackend) GetIDMappingTable(membershipID, tableID string) (*IDMappingTable, error)
- func (b *InMemoryBackend) GetIDNamespaceAssociation(membershipID, assocID string) (*IDNamespaceAssociation, error)
- func (b *InMemoryBackend) GetIntermediateTable(membershipID, tableID string) (*IntermediateTable, error)
- func (b *InMemoryBackend) GetIntermediateTableAnalysisRule(_, tableID, ruleType string) (*IntermediateTableAnalysisRule, error)
- func (b *InMemoryBackend) GetMembership(id string) (*Membership, error)
- func (b *InMemoryBackend) GetPrivacyBudgetTemplate(membershipID, templateID string) (*PrivacyBudgetTemplate, error)
- func (b *InMemoryBackend) GetProtectedJob(membershipID, jobID string) (*ProtectedJob, error)
- func (b *InMemoryBackend) GetProtectedQuery(membershipID, queryID string) (*ProtectedQuery, error)
- func (b *InMemoryBackend) GetSchema(collaborationID, name string) (*Schema, error)
- func (b *InMemoryBackend) GetSchemaAnalysisRule(collaborationID, name, ruleType string) (*SchemaAnalysisRule, error)
- func (b *InMemoryBackend) ListAnalysisTemplates(membershipID, maxResults, nextToken string) ([]*AnalysisTemplateSummary, string, error)
- func (b *InMemoryBackend) ListCollaborationAnalysisTemplates(collaborationID, maxResults, nextToken string) ([]*AnalysisTemplateSummary, string, error)
- func (b *InMemoryBackend) ListCollaborationChangeRequests(collaborationID, maxResults, nextToken string) ([]*CollaborationChangeRequest, string, error)
- func (b *InMemoryBackend) ListCollaborationConfiguredAudienceModelAssociations(collaborationID, maxResults, nextToken string) ([]*ConfiguredAudienceModelAssociationSummary, string, error)
- func (b *InMemoryBackend) ListCollaborationIDNamespaceAssociations(collaborationID, maxResults, nextToken string) ([]*IDNamespaceAssociationSummary, string, error)
- func (b *InMemoryBackend) ListCollaborationPrivacyBudgetTemplates(collaborationID, maxResults, nextToken string) ([]*PrivacyBudgetTemplateSummary, string, error)
- func (b *InMemoryBackend) ListCollaborationPrivacyBudgets(collaborationID, _, _, _ string) ([]*PrivacyBudget, string, error)
- func (b *InMemoryBackend) ListCollaborations(_, maxResults, nextToken string) ([]*CollaborationSummary, string)
- func (b *InMemoryBackend) ListConfiguredAudienceModelAssociations(membershipID, maxResults, nextToken string) ([]*ConfiguredAudienceModelAssociationSummary, string, error)
- func (b *InMemoryBackend) ListConfiguredTableAssociations(membershipID, maxResults, nextToken string) ([]*ConfiguredTableAssociationSummary, string, error)
- func (b *InMemoryBackend) ListConfiguredTables(maxResults, nextToken string) ([]*ConfiguredTableSummary, string)
- func (b *InMemoryBackend) ListIDMappingTables(membershipID, maxResults, nextToken string) ([]*IDMappingTableSummary, string, error)
- func (b *InMemoryBackend) ListIDNamespaceAssociations(membershipID, maxResults, nextToken string) ([]*IDNamespaceAssociationSummary, string, error)
- func (b *InMemoryBackend) ListIntermediateTableVersions(membershipID, tableID, maxResults, nextToken string) ([]*IntermediateTableVersionSummary, string, error)
- func (b *InMemoryBackend) ListIntermediateTables(membershipID, maxResults, nextToken string) ([]*IntermediateTableSummary, string, error)
- func (b *InMemoryBackend) ListMembers(collaborationID string, maxResults, nextToken string) ([]*MemberSummary, string, error)
- func (b *InMemoryBackend) ListMemberships(status, maxResults, nextToken string) ([]*MembershipSummary, string)
- func (b *InMemoryBackend) ListPrivacyBudgetTemplates(membershipID, privacyBudgetType, maxResults, nextToken string) ([]*PrivacyBudgetTemplateSummary, string, error)
- func (b *InMemoryBackend) ListPrivacyBudgets(membershipID, _, _, _ string) ([]*PrivacyBudget, string, error)
- func (b *InMemoryBackend) ListProtectedJobs(membershipID, status, maxResults, nextToken string) ([]*ProtectedJobSummary, string, error)
- func (b *InMemoryBackend) ListProtectedQueries(membershipID, status, maxResults, nextToken string) ([]*ProtectedQuerySummary, string, error)
- func (b *InMemoryBackend) ListSchemas(collaborationID, schemaType, maxResults, nextToken string) ([]*SchemaSummary, string, error)
- func (b *InMemoryBackend) ListTagsForResource(resourceArn string) (map[string]string, error)
- func (b *InMemoryBackend) PopulateIDMappingTable(membershipID, tableID string) (map[string]any, error)
- func (b *InMemoryBackend) PopulateIntermediateTable(membershipID, tableID, payerAccountID string, ...) (*PopulateIntermediateTableOutput, error)
- func (b *InMemoryBackend) PreviewPrivacyImpact(membershipID string, _ map[string]any) (map[string]any, error)
- func (b *InMemoryBackend) Region() string
- func (b *InMemoryBackend) Reset()
- func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error
- func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte
- func (b *InMemoryBackend) StartProtectedJob(membershipID, jobType string, jobParameters map[string]any, ...) (*ProtectedJob, error)
- func (b *InMemoryBackend) StartProtectedQuery(membershipID, sqlText string, resultConfig map[string]any, ...) (*ProtectedQuery, error)
- func (b *InMemoryBackend) TagResource(resourceArn string, tags map[string]string) error
- func (b *InMemoryBackend) UntagResource(resourceArn string, tagKeys []string) error
- func (b *InMemoryBackend) UpdateAnalysisTemplate(membershipID, templateID, description string) (*AnalysisTemplate, error)
- func (b *InMemoryBackend) UpdateCollaboration(id, name, description string) (*Collaboration, error)
- func (b *InMemoryBackend) UpdateCollaborationChangeRequest(collaborationID, changeRequestID, action string) (*CollaborationChangeRequest, error)
- func (b *InMemoryBackend) UpdateConfiguredAudienceModelAssociation(membershipID, assocID, name, description string) (*ConfiguredAudienceModelAssociation, error)
- func (b *InMemoryBackend) UpdateConfiguredTable(id, name, description string) (*ConfiguredTable, error)
- func (b *InMemoryBackend) UpdateConfiguredTableAnalysisRule(configuredTableID, analysisRuleType string, policy map[string]any) (*ConfiguredTableAnalysisRule, error)
- func (b *InMemoryBackend) UpdateConfiguredTableAssociation(membershipID, assocID, description, roleArn string) (*ConfiguredTableAssociation, error)
- func (b *InMemoryBackend) UpdateConfiguredTableAssociationAnalysisRule(_, assocID, ruleType string, policy map[string]any) (*ConfiguredTableAssociationAnalysisRule, error)
- func (b *InMemoryBackend) UpdateIDMappingTable(membershipID, tableID, description, kmsKeyArn string) (*IDMappingTable, error)
- func (b *InMemoryBackend) UpdateIDNamespaceAssociation(membershipID, assocID, description string, idMappingConfig map[string]any) (*IDNamespaceAssociation, error)
- func (b *InMemoryBackend) UpdateIntermediateTable(membershipID, tableID, description, kmsKeyArn string) (*IntermediateTable, error)
- func (b *InMemoryBackend) UpdateIntermediateTableAnalysisRule(_, tableID, ruleType string, policy map[string]any) (*IntermediateTableAnalysisRule, error)
- func (b *InMemoryBackend) UpdateMembership(id, queryLogStatus string, defaultResultConfiguration map[string]any) (*Membership, error)
- func (b *InMemoryBackend) UpdatePrivacyBudgetTemplate(membershipID, templateID, autoRefresh string, parameters map[string]any) (*PrivacyBudgetTemplate, error)
- func (b *InMemoryBackend) UpdateProtectedJob(membershipID, jobID, targetStatus string) (*ProtectedJob, error)
- func (b *InMemoryBackend) UpdateProtectedQuery(membershipID, queryID, targetStatus string) (*ProtectedQuery, error)
- type IntermediateTable
- type IntermediateTableAnalysisRule
- type IntermediateTableSummary
- type IntermediateTableVersionSummary
- type MemberSpec
- type MemberSummary
- type Membership
- type MembershipSummary
- type PopulateIntermediateTableOutput
- type PrivacyBudget
- type PrivacyBudgetTemplate
- type PrivacyBudgetTemplateSummary
- type ProtectedJob
- type ProtectedJobSummary
- type ProtectedQuery
- type ProtectedQuerySummary
- type Provider
- type Schema
- type SchemaAnalysisRule
- type SchemaSummary
- type StorageBackend
Constants ¶
This section is empty.
Variables ¶
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) )
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:"-"`
Schema map[string]any `json:"schema,omitempty"`
AnalysisTemplateIdentifier string `json:"-"`
Format string `json:"format,omitempty"`
MembershipArn string `json:"membershipArn"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
CollaborationIdentifier string `json:"-"`
CollaborationArn string `json:"collaborationArn"`
MembershipIdentifier string `json:"-"`
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"`
}
AnalysisTemplate is the wire shape for CreateAnalysisTemplate/Get/ UpdateAnalysisTemplate (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentAnalysisTemplate(Summary): real keys use "id"/"collaborationId"/"membershipId", never the "*Identifier" forms (request-parameter-only names). errorMessageConfiguration, sourceMetadata, syntheticDataParameters, validations (full-resource) and isSyntheticData (summary) are not modeled (deferred, see PARITY.md).
type AnalysisTemplateSummary ¶
type AnalysisTemplateSummary struct {
AnalysisTemplateIdentifier string `json:"-"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
MembershipIdentifier string `json:"-"`
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 Collaboration ¶
type Collaboration struct {
Tags map[string]string `json:"-"`
CollaborationIdentifier string `json:"-"`
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"`
// MembershipArn/MembershipID are the caller's own membership within this
// collaboration -- real AWS auto-creates a membership for the creator at
// CreateCollaboration time (see InMemoryBackend.CreateCollaboration).
MembershipArn string `json:"membershipArn,omitempty"`
MembershipID string `json:"membershipId,omitempty"`
MemberAbilities []string `json:"-"`
// Members is the real backing store for ListMembers/DeleteMember (see
// InMemoryBackend.ListMembers/DeleteMember) and has no separate
// persisted representation the way tagsByArn does for Tags, so unlike
// every other invented field cleaned up in this pass it keeps a real
// (non "-") json tag: store.Table's Snapshot/Restore round-trips
// through this exact tag, and a json:"-" here would silently lose every
// collaboration's member list across a restart. A real AWS SDK/
// Terraform client tolerates the extra "members" key on
// Create/Get/UpdateCollaboration responses (every deserializer in this
// service ends its field switch with a default case that discards
// unrecognized keys), so this is a deliberate, documented exception,
// not a silent wire violation -- moving Members to its own
// store.Table (like tagsByArn) to fully remove it from the wire is
// deferred, see PARITY.md.
Members []*MemberSummary `json:"members,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
Collaboration is the wire shape returned by CreateCollaboration/ GetCollaboration/UpdateCollaboration. Verified against awsRestjson1_deserializeDocumentCollaboration: real keys are allowedResultRegions, analyticsEngine, arn, autoApprovedChangeTypes, createTime, creatorAccountId, creatorDisplayName, dataEncryptionMetadata, description, id, isMetricsEnabled, jobLogStatus, membershipArn, membershipId, memberStatus, name, queryLogStatus, updateTime.
There is NO "collaborationIdentifier", "memberAbilities", "members", or "tags" key on this shape in the real API -- members come only from ListMembers, tags only from ListTagsForResource, and "collaborationIdentifier" is exclusively a *request* parameter name (used by Get/Update/Delete/etc, see the handler_*.go request DTOs), never a response field. CollaborationIdentifier/MemberAbilities/Members/Tags are kept as Go-only bookkeeping fields (json:"-") since they back real internal behavior (composite-key derivation, ListMembers/DeleteMember backing store, tagsByArn population at create time) -- only their wire presence was invented.
type CollaborationChangeRequest ¶
type CollaborationChangeRequest struct {
Details map[string]any `json:"-"`
Approvals map[string]any `json:"approvals,omitempty"`
CollaborationArn string `json:"-"`
ChangeRequestIdentifier string `json:"-"`
CollaborationIdentifier string `json:"-"`
CollaborationID string `json:"collaborationId"`
Status string `json:"status"`
Type string `json:"-"`
ID string `json:"id"`
Changes []map[string]any `json:"changes,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
IsAutoApproved bool `json:"isAutoApproved"`
}
CollaborationChangeRequest verified against awsRestjson1_deserializeDocumentCollaborationChangeRequest: real keys are approvals, changes, collaborationId, createTime, id, isAutoApproved, status, updateTime. There is NO "changeRequestIdentifier", "collaborationIdentifier", "collaborationArn", "type", or "details" key in the real API -- CreateCollaborationChangeRequestInput takes a `changes` array of {specification, specificationType} objects (not a free-form "type"+"details" pair), which this backend stores as a generic []map[string]any pass-through, matching the convention used for other complex nested unions in this service (Policy, TableReference, etc). ChangeRequestIdentifier/CollaborationArn/Type are kept as Go-only bookkeeping (json:"-").
type CollaborationSummary ¶
type CollaborationSummary struct {
CollaborationIdentifier string `json:"-"`
ID string `json:"id"`
Arn string `json:"arn"`
Name string `json:"name"`
CreatorAccountID string `json:"creatorAccountId"`
CreatorDisplayName string `json:"creatorDisplayName"`
MemberStatus string `json:"memberStatus"`
MembershipArn string `json:"membershipArn,omitempty"`
MembershipID string `json:"membershipId,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
CollaborationSummary is the wire shape returned by ListCollaborations. Verified against awsRestjson1_deserializeDocumentCollaborationSummary: real keys are analyticsEngine, arn, createTime, creatorAccountId, creatorDisplayName, id, membershipArn, membershipId, memberStatus, name, updateTime. No "collaborationIdentifier" key (see Collaboration doc).
type ConfiguredAudienceModelAssociation ¶
type ConfiguredAudienceModelAssociation struct {
Tags map[string]string `json:"-"`
Description string `json:"description,omitempty"`
ConfiguredAudienceModelArn string `json:"configuredAudienceModelArn"`
CollaborationIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
ConfiguredAudienceModelAssociationIdentifier string `json:"-"`
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"`
}
ConfiguredAudienceModelAssociation is the wire shape for CreateConfiguredAudienceModelAssociation (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentConfiguredAudienceModelAssociation (Summary): real keys use "id"/"collaborationId"/"membershipId", never the "*Identifier" forms. Summary lacks only manageResourcePolicies vs the full resource.
type ConfiguredAudienceModelAssociationSummary ¶
type ConfiguredAudienceModelAssociationSummary struct {
ConfiguredAudienceModelAssociationIdentifier string `json:"-"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
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:"-"`
ConfiguredTableIdentifier string `json:"-"`
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"`
}
ConfiguredTable is the wire shape for CreateConfiguredTable/GetConfiguredTable/ UpdateConfiguredTable (ConfiguredTableSummary is its List shape). Verified against awsRestjson1_deserializeDocumentConfiguredTable(Summary): real keys use "id", never "configuredTableIdentifier" (request-parameter-only name). selectedAnalysisMethods is not modeled (deferred, see PARITY.md).
type ConfiguredTableAnalysisRule ¶
type ConfiguredTableAnalysisRule struct {
Policy map[string]any `json:"policy,omitempty"`
ConfiguredTableIdentifier string `json:"-"`
ConfiguredTableArn string `json:"configuredTableArn"`
Type string `json:"type"`
ConfiguredTableID string `json:"configuredTableId"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
ConfiguredTableAnalysisRule verified against awsRestjson1_deserializeDocumentConfiguredTableAnalysisRule: real keys are configuredTableArn, configuredTableId, createTime, policy, type, updateTime. No standalone "id" and no "configuredTableIdentifier".
type ConfiguredTableAssociation ¶
type ConfiguredTableAssociation struct {
Tags map[string]string `json:"-"`
RoleArn string `json:"roleArn,omitempty"`
Name string `json:"name"`
MembershipArn string `json:"membershipArn"`
ConfiguredTableIdentifier string `json:"-"`
ConfiguredTableArn string `json:"configuredTableArn"`
ConfiguredTableAssociationIdentifier string `json:"-"`
MembershipIdentifier string `json:"-"`
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"`
}
ConfiguredTableAssociation is the wire shape for CreateConfiguredTableAssociation/ Get/UpdateConfiguredTableAssociation (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentConfiguredTableAssociation(Summary): real keys use "id"/"configuredTableId"/"membershipId", never the "*Identifier" forms (request-parameter-only names). Summary additionally has no configuredTableArn/description/roleArn (full-resource-only fields).
type ConfiguredTableAssociationAnalysisRule ¶
type ConfiguredTableAssociationAnalysisRule struct {
Policy map[string]any `json:"policy,omitempty"`
ConfiguredTableAssociationIdentifier string `json:"configuredTableAssociationId"`
ConfiguredTableAssociationArn string `json:"configuredTableAssociationArn"`
MembershipIdentifier string `json:"membershipIdentifier"`
MembershipArn string `json:"-"`
Type string `json:"type"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
ConfiguredTableAssociationAnalysisRule verified against awsRestjson1_deserializeDocumentConfiguredTableAssociationAnalysisRule: real keys are configuredTableAssociationArn, configuredTableAssociationId (NOT "...Identifier"), createTime, membershipIdentifier (this one IS spelled "membershipIdentifier" in the real API -- confirmed against the deserializer, an intentional asymmetry vs every other type in this service), policy, type, updateTime. There is no "membershipArn" key for this specific nested shape (it was previously fabricated here).
type ConfiguredTableAssociationSummary ¶
type ConfiguredTableAssociationSummary struct {
ConfiguredTableAssociationIdentifier string `json:"-"`
Arn string `json:"arn"`
MembershipIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
ConfiguredTableIdentifier string `json:"-"`
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:"-"`
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) GetSupportedOperations ¶
func (*Handler) Handler ¶
func (h *Handler) Handler() echo.HandlerFunc
func (*Handler) MatchPriority ¶
func (*Handler) RouteMatcher ¶
func (*Handler) Snapshot ¶
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.
type IDMappingTable ¶
type IDMappingTable struct {
InputReferenceConfig map[string]any `json:"inputReferenceConfig,omitempty"`
Tags map[string]string `json:"-"`
InputReferenceProperties map[string]any `json:"inputReferenceProperties,omitempty"`
IDMappingTableIdentifier string `json:"-"`
KmsKeyArn string `json:"kmsKeyArn,omitempty"`
MembershipIdentifier string `json:"-"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
CollaborationIdentifier string `json:"-"`
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"`
}
IDMappingTable is the wire shape for CreateIdMappingTable/GetIdMappingTable (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentIdMappingTable(Summary): real keys use "id"/"collaborationId"/"membershipId", never the "*Identifier" forms. Summary DOES include inputReferenceConfig (unlike some other Summary shapes in this service) but not inputReferenceProperties.
type IDMappingTableSummary ¶
type IDMappingTableSummary struct {
InputReferenceConfig map[string]any `json:"inputReferenceConfig,omitempty"`
IDMappingTableIdentifier string `json:"-"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
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:"-"`
IDMappingConfig map[string]any `json:"idMappingConfig,omitempty"`
InputReferenceProperties map[string]any `json:"inputReferenceProperties,omitempty"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
CollaborationIdentifier string `json:"-"`
IDNamespaceAssociationIdentifier string `json:"-"`
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"`
}
IDNamespaceAssociation is the wire shape for CreateIdNamespaceAssociation/Get/ UpdateIdNamespaceAssociation (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentIdNamespaceAssociation(Summary): real keys use "id"/"collaborationId"/"membershipId", never the "*Identifier" forms. Summary includes inputReferenceConfig AND inputReferenceProperties (only idMappingConfig is full-resource-only).
type IDNamespaceAssociationSummary ¶
type IDNamespaceAssociationSummary struct {
InputReferenceConfig map[string]any `json:"inputReferenceConfig,omitempty"`
InputReferenceProperties map[string]any `json:"inputReferenceProperties,omitempty"`
IDNamespaceAssociationIdentifier string `json:"-"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
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 string, changes []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) CreateIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) CreateIntermediateTable( membershipID, name, description, kmsKeyArn string, populationAnalysisConfiguration map[string]any, retentionInDays int32, tags map[string]string, ) (*IntermediateTable, error)
func (*InMemoryBackend) CreateIntermediateTableAnalysisRule ¶ added in v1.2.0
func (b *InMemoryBackend) CreateIntermediateTableAnalysisRule( membershipID, tableID, ruleType string, policy map[string]any, ) (*IntermediateTableAnalysisRule, error)
func (*InMemoryBackend) CreateMembership ¶
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) DeleteIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) DeleteIntermediateTable(membershipID, tableID string) error
DeleteIntermediateTable hard-deletes the table and cascades to its analysis rule and versions, matching the real API's documented behavior ("the service marks it as DELETED, removes its analysis rule and schema, and triggers storage cleanup") -- this backend has no separate DELETED status value to transition through (not a real IntermediateTableStatus enum value, see models.go), so a real hard delete (GetIntermediateTable then returns ResourceNotFoundException, matching every other resource's delete convention in this service) models the same observable end state.
func (*InMemoryBackend) DeleteIntermediateTableAnalysisRule ¶ added in v1.2.0
func (b *InMemoryBackend) DeleteIntermediateTableAnalysisRule(membershipID, tableID, ruleType 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) DisallowIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) DisallowIntermediateTable(membershipID, name string, includeDescendants bool) error
DisallowIntermediateTable marks every intermediate table in membershipID named name DISALLOWED_BY_DATA_PROVIDER, matching the real semantics documented on IntermediateTableStatus (the table owner/data provider withdrawing consent for further population/query). includeDescendants (default true on the wire) requests cascading the disallow to descendant intermediate tables built on top of this one, but this backend never populates TableDependencies (see the IntermediateTable doc comment), so there is no dependency graph to cascade through -- the direct-name-match transition below is real; the cascade is a documented no-op, not a fabricated one (see PARITY.md).
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) GetIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) GetIntermediateTable(membershipID, tableID string) (*IntermediateTable, error)
func (*InMemoryBackend) GetIntermediateTableAnalysisRule ¶ added in v1.2.0
func (b *InMemoryBackend) GetIntermediateTableAnalysisRule( _, tableID, ruleType string, ) (*IntermediateTableAnalysisRule, 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) ListIntermediateTableVersions ¶ added in v1.2.0
func (b *InMemoryBackend) ListIntermediateTableVersions( membershipID, tableID, maxResults, nextToken string, ) ([]*IntermediateTableVersionSummary, string, error)
func (*InMemoryBackend) ListIntermediateTables ¶ added in v1.2.0
func (b *InMemoryBackend) ListIntermediateTables( membershipID, maxResults, nextToken string, ) ([]*IntermediateTableSummary, 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) PopulateIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) PopulateIntermediateTable( membershipID, tableID, payerAccountID string, computeConfiguration map[string]any, parameters map[string]string, ) (*PopulateIntermediateTableOutput, error)
PopulateIntermediateTable starts a real ProtectedQuery against the table's stored PopulationAnalysisConfiguration -- matching the real API's documented contract ("Use this value with GetProtectedQuery to track the population progress") -- and records a new POPULATE_STARTED version. It does not, and cannot, fabricate a row count or a Schema: this emulator has no SQL engine to actually execute the query, so the honest state transition is limited to status/version bookkeeping (see advanceIntermediateTablesLocked, which resolves the version and table status once the underlying ProtectedQuery reaches a terminal status, the same "advance on next read" pattern StartProtectedQuery already uses).
payerAccountID is accepted (matching the real PopulateIntermediateTableInput.AnalysisPayerAccountId wire field) but not persisted: ProtectedQuery has no modeled payer-account field anywhere else in this backend either (queryComputePayerAccountId is a pre-existing documented PARITY.md gap on ProtectedQuery/ProtectedJob), so there is nowhere honest to attach it without inventing a new field outside that gap's scope.
func (*InMemoryBackend) PreviewPrivacyImpact ¶
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, action 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) UpdateIntermediateTable ¶ added in v1.2.0
func (b *InMemoryBackend) UpdateIntermediateTable( membershipID, tableID, description, kmsKeyArn string, ) (*IntermediateTable, error)
UpdateIntermediateTable updates the description and KMS key of an intermediate table. The real UpdateIntermediateTableInput additionally accepts a "columns" list to retype existing schema columns, but this backend never populates IntermediateTable.Schema in the first place (see the IntermediateTable doc comment) -- there is no real column data to retype, so that input is not modeled here rather than accepted and silently discarded against fabricated column state. See PARITY.md.
func (*InMemoryBackend) UpdateIntermediateTableAnalysisRule ¶ added in v1.2.0
func (b *InMemoryBackend) UpdateIntermediateTableAnalysisRule( _, tableID, ruleType string, policy map[string]any, ) (*IntermediateTableAnalysisRule, 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 IntermediateTable ¶ added in v1.2.0
type IntermediateTable struct {
PopulationAnalysisConfiguration map[string]any `json:"populationAnalysisConfiguration,omitempty"`
IntermediateTableVersion map[string]any `json:"intermediateTableVersion,omitempty"`
Tags map[string]string `json:"-"`
CollaborationArn string `json:"collaborationArn"`
MembershipArn string `json:"membershipArn"`
Arn string `json:"arn"`
CollaborationID string `json:"collaborationId"`
MembershipID string `json:"membershipId"`
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
KmsKeyArn string `json:"kmsKeyArn,omitempty"`
Status string `json:"status"`
StatusReason string `json:"statusReason,omitempty"`
AnalysisRuleTypes []string `json:"analysisRuleTypes,omitempty"`
RetentionInDays int32 `json:"retentionInDays,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
IntermediateTable is the wire shape for CreateIntermediateTable/ GetIntermediateTable/UpdateIntermediateTable (Summary is its List shape). Verified against aws-sdk-go-v2/service/cleanrooms@v1.48.0's awsRestjson1_deserializeDocumentIntermediateTable: real keys are analysisRuleTypes, arn, childResources, collaborationArn, collaborationId, createTime, description, id, intermediateTableVersion, kmsKeyArn, membershipArn, membershipId, name, populationAnalysisConfiguration, retentionInDays, schema, status, statusReason, tableDependencies, updateTime. No "*Identifier" forms -- those are request-parameter-only names, matching every other resource in this service.
childResources, schema, and tableDependencies are real optional fields this backend does not model and are deliberately omitted from this struct (never fabricated with fake values, see PARITY.md): schema requires actually executing the stored populationAnalysisConfiguration query to learn real column types, which this emulator cannot do; childResources/ tableDependencies require a full base-table-dependency graph across other members' configured tables that this backend does not build.
type IntermediateTableAnalysisRule ¶ added in v1.2.0
type IntermediateTableAnalysisRule struct {
AnalysisRulePolicy map[string]any `json:"analysisRulePolicy,omitempty"`
IntermediateTableArn string `json:"intermediateTableArn"`
IntermediateTableIdentifier string `json:"intermediateTableIdentifier"`
AnalysisRuleType string `json:"analysisRuleType"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
IntermediateTableAnalysisRule verified against awsRestjson1_deserializeDocumentIntermediateTableAnalysisRule: real keys are analysisRulePolicy, analysisRuleType, createTime, intermediateTableArn, intermediateTableIdentifier, updateTime. Note that the real output key really is "intermediateTableIdentifier" (NOT "intermediateTableId") -- confirmed directly against the deserializer, the same kind of intentional asymmetry already documented on ConfiguredTableAssociationAnalysisRule.MembershipIdentifier. Unlike ConfiguredTableAnalysisRule, IntermediateTableAnalysisRule is NOT the same SDK union: types.IntermediateTableAnalysisRulePolicy (isIntermediateTableAnalysisRulePolicy) is a distinct Go interface from types.AnalysisRulePolicy (isAnalysisRulePolicy) used by ConfiguredTableAnalysisRule, even though their content shape happens to be structurally identical ({"v1": {"custom": {...}}}). This backend models both the same way regardless (a generic map[string]any pass-through, this service's established convention for every policy/union field), so no code is literally shared -- only the pass-through *strategy* is reused.
type IntermediateTableSummary ¶ added in v1.2.0
type IntermediateTableSummary struct {
CollaborationArn string `json:"collaborationArn"`
MembershipArn string `json:"membershipArn"`
Arn string `json:"arn"`
CollaborationID string `json:"collaborationId"`
MembershipID string `json:"membershipId"`
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Status string `json:"status"`
AnalysisRuleTypes []string `json:"analysisRuleTypes,omitempty"`
RetentionInDays int32 `json:"retentionInDays,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
IntermediateTableSummary is the wire shape for ListIntermediateTables items. Verified against awsRestjson1_deserializeDocumentIntermediateTableSummary: real keys are analysisRuleTypes, arn, collaborationArn, collaborationId, createTime, description, id, membershipArn, membershipId, name, retentionInDays, status, updateTime -- a strict subset of IntermediateTable (no childResources, intermediateTableVersion, kmsKeyArn, populationAnalysisConfiguration, schema, statusReason, tableDependencies).
type IntermediateTableVersionSummary ¶ added in v1.2.0
type IntermediateTableVersionSummary struct {
Parameters map[string]string `json:"-"`
MembershipID string `json:"-"`
AnalysisID string `json:"analysisId"`
AnalysisType string `json:"analysisType"`
Status string `json:"status"`
TableID string `json:"tableId"`
VersionID string `json:"versionId"`
KmsKeyArn string `json:"kmsKeyArn,omitempty"`
CreateTime float64 `json:"createTime,omitempty"`
ExpirationTime float64 `json:"expirationTime,omitempty"`
}
IntermediateTableVersionSummary is the wire shape for ListIntermediateTableVersions items. Verified against awsRestjson1_deserializeDocumentIntermediateTableVersionSummary: real keys are analysisId, analysisType, createTime, expirationTime, kmsKeyArn, status, tableId, versionId. MembershipID is Go-only bookkeeping (json:"-") used to look up the underlying ProtectedQuery this version's population run created (see PopulateIntermediateTable/advanceIntermediateTablesLocked in intermediate_tables.go) -- there is no membershipId key on this real type. Parameters is also Go-only bookkeeping: the real "parameters" key belongs to the nested types.IntermediateTableActiveVersion (surfaced as IntermediateTable.IntermediateTableVersion once population succeeds), not to this Summary type, so it is carried here only to round-trip through to that map when advanceIntermediateTablesLocked resolves the version.
type MemberSpec ¶
type MemberSummary ¶
type MemberSummary struct {
PaymentConfig map[string]any `json:"paymentConfiguration"`
AccountID string `json:"accountId"`
DisplayName string `json:"displayName"`
Status string `json:"status"`
MembershipArn string `json:"membershipArn,omitempty"`
MembershipID string `json:"membershipId,omitempty"`
Abilities []string `json:"abilities"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
MemberSummary is the wire shape returned by ListMembers. Verified against aws-sdk-go-v2/service/cleanrooms@v1.45.6's awsRestjson1_deserializeDocumentMemberSummary: real keys are abilities, accountId, createTime, displayName, membershipArn, membershipId, mlAbilities (not modeled -- ML abilities are out of scope for this emulator), paymentConfiguration, status, updateTime.
type Membership ¶
type Membership struct {
DefaultResultConfiguration map[string]any `json:"defaultResultConfiguration,omitempty"`
PaymentConfiguration map[string]any `json:"paymentConfiguration"`
QueryLogStatus string `json:"queryLogStatus,omitempty"`
CollaborationIdentifier string `json:"-"`
CollaborationCreatorAccountID string `json:"collaborationCreatorAccountId"`
CollaborationCreatorDisplayName string `json:"collaborationCreatorDisplayName"`
MembershipIdentifier string `json:"-"`
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"`
}
Membership is the wire shape for CreateMembership/GetMembership/ UpdateMembership. Verified against awsRestjson1_deserializeDocumentMembership: real keys are arn, collaborationArn, collaborationCreatorAccountId, collaborationCreatorDisplayName, collaborationId, collaborationName, createTime, defaultJobResultConfiguration (not modeled), defaultResultConfiguration, id, isMetricsEnabled (not modeled), jobLogStatus (not modeled), memberAbilities, mlMemberAbilities (not modeled), paymentConfiguration, queryLogStatus, status, updateTime. No "membershipIdentifier" or "collaborationIdentifier" key (those are request-only parameter names).
type MembershipSummary ¶
type MembershipSummary struct {
PaymentConfiguration map[string]any `json:"paymentConfiguration"`
CollaborationName string `json:"collaborationName"`
Arn string `json:"arn"`
CollaborationIdentifier string `json:"-"`
CollaborationArn string `json:"collaborationArn"`
CollaborationCreatorAccountID string `json:"collaborationCreatorAccountId"`
CollaborationCreatorDisplayName string `json:"collaborationCreatorDisplayName"`
MembershipIdentifier string `json:"-"`
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"`
}
MembershipSummary is the wire shape for ListMemberships. Verified against awsRestjson1_deserializeDocumentMembershipSummary: same key set as Membership minus defaultResultConfiguration/defaultJobResultConfiguration/ isMetricsEnabled/jobLogStatus.
type PopulateIntermediateTableOutput ¶ added in v1.2.0
type PopulateIntermediateTableOutput struct {
AnalysisID string `json:"analysisId"`
AnalysisType string `json:"analysisType"`
VersionID string `json:"versionId"`
}
PopulateIntermediateTableOutput is the (unwrapped -- no envelope key, confirmed against awsRestjson1_deserializeOpDocumentPopulateIntermediateTableOutput) response shape for PopulateIntermediateTable: real keys are analysisId, analysisType, versionId.
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:"-"`
MembershipArn string `json:"membershipArn"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
PrivacyBudgetTemplateIdentifier string `json:"-"`
MembershipIdentifier string `json:"-"`
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"`
}
PrivacyBudgetTemplate is the wire shape for CreatePrivacyBudgetTemplate/Get/ UpdatePrivacyBudgetTemplate (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentPrivacyBudgetTemplate(Summary): real keys use "id"/"collaborationId"/"membershipId", never the "*Identifier" forms.
type PrivacyBudgetTemplateSummary ¶
type PrivacyBudgetTemplateSummary struct {
PrivacyBudgetTemplateIdentifier string `json:"-"`
Arn string `json:"arn"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
MembershipArn string `json:"membershipArn"`
MembershipIdentifier string `json:"-"`
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:"-"`
MembershipArn string `json:"membershipArn"`
Status string `json:"status"`
Type string `json:"type"`
MembershipID string `json:"membershipId"`
CreateTime float64 `json:"createTime,omitempty"`
}
ProtectedJob is the wire shape for StartProtectedJob/GetProtectedJob (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentProtectedJob(Summary): same pattern as ProtectedQuery. jobComputePayerAccountId (both), receiverConfigurations (summary) are not modeled (deferred).
type ProtectedJobSummary ¶
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:"-"`
MembershipArn string `json:"membershipArn"`
Status string `json:"status"`
MembershipID string `json:"membershipId"`
CreateTime float64 `json:"createTime,omitempty"`
}
ProtectedQuery is the wire shape for StartProtectedQuery/GetProtectedQuery (Summary is its List shape). Verified against awsRestjson1_deserializeDocumentProtectedQuery(Summary): real keys use "id"/"membershipId", never "membershipIdentifier" (request-parameter-only name). differentialPrivacy, queryComputePayerAccountId (both), receiverConfigurations (summary) are not modeled (deferred, see PARITY.md).
type ProtectedQuerySummary ¶
type Provider ¶
type Provider struct{}
Provider implements service.Provider for AWS Clean Rooms.
func (*Provider) Init ¶
func (p *Provider) Init(ctx *service.AppContext) (service.Registerable, error)
Init initializes the Clean Rooms service backend and handler.
type Schema ¶
type Schema struct {
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
CollaborationID string `json:"collaborationId"`
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"`
}
Schema is the wire shape for GetSchema (SchemaSummary is its List shape). Verified against awsRestjson1_deserializeDocumentSchema(Summary): real keys use "collaborationId", never "collaborationIdentifier" (request-parameter-only name). resourceArn, schemaStatusDetails, schemaTypeProperties, selectedAnalysisMethods are not modeled (deferred, see PARITY.md; there is no Create path for schemas in this backend at all, so these fields are never populated regardless).
type SchemaAnalysisRule ¶
type SchemaAnalysisRule struct {
Policy map[string]any `json:"policy,omitempty"`
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
CollaborationID string `json:"collaborationId"`
Name string `json:"name"`
Type string `json:"type"`
CreateTime float64 `json:"createTime,omitempty"`
UpdateTime float64 `json:"updateTime,omitempty"`
}
SchemaAnalysisRule is a simplified stand-in: the real GetSchemaAnalysisRule response wraps a types.AnalysisRule union (a deeper shape keyed by analysis-rule "type", distinct from the ConfiguredTable/ ConfiguredTableAssociation analysis-rule shapes), which this backend does not model precisely (deferred, see PARITY.md). Since schemas are never created in this backend (no Create path exists, see Schema doc), this type's wire shape is currently unreachable in practice either way.
type SchemaSummary ¶
type SchemaSummary struct {
CollaborationArn string `json:"collaborationArn"`
CollaborationIdentifier string `json:"-"`
CollaborationID string `json:"collaborationId"`
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 string,
changes []map[string]any,
) (*CollaborationChangeRequest, error)
GetCollaborationChangeRequest(
collaborationID, changeRequestID string,
) (*CollaborationChangeRequest, error)
ListCollaborationChangeRequests(
collaborationID, maxResults, nextToken string,
) ([]*CollaborationChangeRequest, string, error)
UpdateCollaborationChangeRequest(
collaborationID, changeRequestID, action string,
) (*CollaborationChangeRequest, error)
// IntermediateTable operations.
CreateIntermediateTable(
membershipID, name, description, kmsKeyArn string,
populationAnalysisConfiguration map[string]any,
retentionInDays int32,
tags map[string]string,
) (*IntermediateTable, error)
GetIntermediateTable(membershipID, tableID string) (*IntermediateTable, error)
ListIntermediateTables(
membershipID, maxResults, nextToken string,
) ([]*IntermediateTableSummary, string, error)
UpdateIntermediateTable(membershipID, tableID, description, kmsKeyArn string) (*IntermediateTable, error)
DeleteIntermediateTable(membershipID, tableID string) error
ListIntermediateTableVersions(
membershipID, tableID, maxResults, nextToken string,
) ([]*IntermediateTableVersionSummary, string, error)
PopulateIntermediateTable(
membershipID, tableID, payerAccountID string,
computeConfiguration map[string]any,
parameters map[string]string,
) (*PopulateIntermediateTableOutput, error)
DisallowIntermediateTable(membershipID, name string, includeDescendants bool) error
// IntermediateTableAnalysisRule operations.
CreateIntermediateTableAnalysisRule(
membershipID, tableID, ruleType string,
policy map[string]any,
) (*IntermediateTableAnalysisRule, error)
GetIntermediateTableAnalysisRule(membershipID, tableID, ruleType string) (*IntermediateTableAnalysisRule, error)
UpdateIntermediateTableAnalysisRule(
membershipID, tableID, ruleType string,
policy map[string]any,
) (*IntermediateTableAnalysisRule, error)
DeleteIntermediateTableAnalysisRule(membershipID, tableID, ruleType string) 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.
Source Files
¶
- analysis_templates.go
- collaborations.go
- configured_audience_model_associations.go
- configured_table_associations.go
- configured_tables.go
- errors.go
- handler.go
- handler_analysis_templates.go
- handler_collaborations.go
- handler_configured_audience_model_associations.go
- handler_configured_table_associations.go
- handler_configured_tables.go
- handler_id_mapping_tables.go
- handler_id_namespace_associations.go
- handler_intermediate_tables.go
- handler_memberships.go
- handler_privacy_budgets.go
- handler_protected_jobs.go
- handler_protected_queries.go
- handler_routing.go
- handler_schemas.go
- handler_tags.go
- id_mapping_tables.go
- id_namespace_associations.go
- interfaces.go
- intermediate_tables.go
- memberships.go
- models.go
- persistence.go
- privacy_budgets.go
- protected_jobs.go
- protected_queries.go
- provider.go
- schemas.go
- store.go
- store_setup.go
- tags.go