glue

package
v1.1.1 Latest Latest
Warning

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

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

README

Glue

Parity grade: A · SDK aws-sdk-go-v2/service/glue@v1.137.2 · last audited 2026-07-12 (a8c6614b)

Coverage

Metric Value
Operations audited 52 (49 ok, 3 partial)
Feature families 13 (3 ok, 2 partial, 8 deferred)
Known gaps 7
Deferred items 10
Resource leaks clean
Known gaps
  • CrawlerTarget missing DynamoDBTargets/DeltaTargets/HudiTargets/IcebergTargets/MongoDBTargets (only S3/JDBC/Catalog modeled) (bd: gopherstack-qd3.1)
  • CreateCrawler/UpdateCrawler missing SchemaChangePolicy, RecrawlPolicy, LineageConfiguration, CrawlerSecurityConfiguration, LakeFormationConfiguration (bd: gopherstack-qd3.2)
  • DatabaseInput/Database missing Parameters, LocationUri, CreateTableDefaultPermissions, TargetDatabase (bd: gopherstack-qd3.3)
  • StartJobRun has no per-run capacity/argument overrides (WorkerType/NumberOfWorkers/MaxCapacity/Timeout/NotificationProperty are inherited from the job only, not overridable per AWS's StartJobRunRequest) (bd: gopherstack-qd3.4)
  • IdempotentParameterMismatchException/ResourceNumberLimitExceededException/OperationTimeoutException/ConcurrentModificationException are documented Glue exceptions never returned by this backend (no quota/idempotency-token/concurrency-conflict modeling) (bd: gopherstack-qd3.5)
  • Trigger/TriggerAction missing Description, EventBatchingCondition, WorkflowName, and the AWS "max 2 crawler actions per trigger" soft limit is not enforced (bd: gopherstack-qd4.1)
  • PutResourcePolicy does not model EnableHybrid (bd: gopherstack-qd4.2)
Deferred
  • workflows
  • dev endpoints
  • security configurations
  • schema registry (compatibility modes, AVRO/JSON/PROTOBUF validation depth, GetSchemaByDefinition)
  • data quality rulesets (DQDL syntax / rule-type validation)
  • …and 5 more — see PARITY.md

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrAlreadyExists = awserr.New("AlreadyExistsException", awserr.ErrAlreadyExists)

ErrAlreadyExists is returned when a resource already exists.

View Source
var ErrBlueprintRunNotFound = fmt.Errorf("blueprint run not found: %w", ErrNotFound)
View Source
var ErrColumnStatTaskRunNotFound = fmt.Errorf("column statistics task run not found: %w", ErrNotFound)
View Source
var ErrConnectionTypeBuiltIn = awserr.New(
	"connection type is a built-in AWS-managed type and cannot be deleted",
	awserr.ErrConflict,
)

ErrConnectionTypeBuiltIn is returned when a caller attempts to delete a built-in (AWS-managed) connection type. Built-in types are undeletable, mirroring AWS, which rejects mutation of managed connector types. It carries a distinct AccessDenied shape (see handleError) so it is not conflated with EntityNotFound/Validation.

View Source
var ErrCrawlerNotRunning = awserr.New("CrawlerNotRunningException", awserr.ErrInvalidParameter)

ErrCrawlerNotRunning is returned when an operation requires the crawler to be running.

View Source
var ErrCrawlerRunning = awserr.New("CrawlerRunningException", awserr.ErrInvalidParameter)

ErrCrawlerRunning is returned when an operation requires the crawler to not be running.

View Source
var ErrDQRecommendationRunNotFound = fmt.Errorf("data quality recommendation run not found: %w", ErrNotFound)
View Source
var ErrIntegrationNotFound = fmt.Errorf("integration not found: %w", ErrNotFound)
View Source
var ErrMLTaskRunNotFound = fmt.Errorf("ML task run not found: %w", ErrNotFound)

ErrMLTaskRunNotFound is returned when an ML task run does not exist.

View Source
var ErrMaterializedViewRunNotFound = fmt.Errorf("materialized view refresh run not found: %w", ErrNotFound)
View Source
var ErrNilAppContext = errors.New("glue provider: nil AppContext")

ErrNilAppContext is returned by Init when appCtx is nil.

View Source
var ErrNotFound = awserr.New("EntityNotFoundException", awserr.ErrNotFound)

ErrNotFound is returned when a requested resource does not exist.

View Source
var ErrResourcePolicyConditionFailed = awserr.New(
	"ConditionCheckFailureException",
	awserr.ErrConflict,
)

ErrResourcePolicyConditionFailed is returned when PutResourcePolicy's PolicyExistsCondition or PolicyHashCondition does not match the current backend state, mirroring AWS's ConditionCheckFailureException — the optimistic-concurrency guard PutResourcePolicy documents to prevent callers from clobbering a policy someone else has since changed.

View Source
var ErrUsageProfileNotFound = fmt.Errorf("usage profile not found: %w", ErrNotFound)
View Source
var ErrValidation = awserr.New("InvalidInputException", awserr.ErrInvalidParameter)

ErrValidation is returned when input validation fails.

Glue's per-operation error models (aws-sdk-go-v2/service/glue deserializers.go) list InvalidInputException — not ValidationException — as the hand-validation error for the overwhelming majority of Create/Update/Delete operations (e.g. CreateDatabase, CreateTable, CreateJob, CreateCrawler, CreateTrigger, CreateBlueprint, CreateCustomEntityType, CreateUsageProfile, tag validation). A handful of newer operations (e.g. DeleteConnectionType) do document ValidationException instead, but since this sentinel is shared across every hand-rolled validation check in the backend, InvalidInputException is the more accurate default.

Functions

This section is empty.

Types

type BatchGetTableOptimizerEntry

type BatchGetTableOptimizerEntry struct {
	CatalogID    string `json:"CatalogId,omitempty"`
	DatabaseName string `json:"DatabaseName"`
	TableName    string `json:"TableName"`
	Type         string `json:"Type"`
}

BatchGetTableOptimizerEntry is one request entry for BatchGetTableOptimizer.

type BatchGetTableOptimizerError

type BatchGetTableOptimizerError struct {
	CatalogID    string      `json:"CatalogId,omitempty"`
	DatabaseName string      `json:"DatabaseName,omitempty"`
	TableName    string      `json:"TableName,omitempty"`
	Type         string      `json:"Type,omitempty"`
	Error        ErrorDetail `json:"Error"`
}

BatchGetTableOptimizerError is one error entry from BatchGetTableOptimizer.

type BatchStopJobRunError

type BatchStopJobRunError struct {
	ErrorDetail ErrorDetail `json:"ErrorDetail"`
	JobRunID    string      `json:"JobRunId"`
	JobName     string      `json:"JobName"`
}

BatchStopJobRunError holds error info for a single stop attempt.

type Blueprint

type Blueprint struct {
	Name   string `json:"Name"`
	Status string `json:"Status,omitempty"`
}

Blueprint represents a Glue blueprint.

type BlueprintRun

type BlueprintRun struct {
	StartedOn     time.Time `json:"StartedOn"`
	BlueprintName string    `json:"BlueprintName"`
	RunID         string    `json:"RunId"`
	WorkflowName  string    `json:"WorkflowName"`
	State         string    `json:"State"`
}

BlueprintRun represents a single execution of a Glue blueprint.

type CatalogEntry

type CatalogEntry struct {
	Parameters  map[string]string `json:"Parameters,omitzero"`
	CatalogID   string            `json:"CatalogId"`
	Name        string            `json:"Name,omitempty"`
	Description string            `json:"Description,omitempty"`
	CreateTime  float64           `json:"CreateTime,omitempty"`
}

CatalogEntry represents a named AWS Glue catalog.

type CatalogImportStatus

type CatalogImportStatus struct {
	ImportedBy      string  `json:"ImportedBy"`
	ImportTime      float64 `json:"ImportTime"`
	ImportCompleted bool    `json:"ImportCompleted"`
}

CatalogImportStatus records the Hive metastore import completion state.

type CatalogTarget

type CatalogTarget struct {
	DatabaseName string   `json:"DatabaseName,omitempty"`
	Tables       []string `json:"Tables,omitempty"`
}

CatalogTarget synchronizes an existing Data Catalog database/tables as a crawler target, mirroring aws-sdk-go-v2/service/glue/types.CatalogTarget.

type Classifier

type Classifier struct {
	GrokClassifier *GrokClassifier `json:"GrokClassifier,omitempty"`
	XMLClassifier  *XMLClassifier  `json:"XMLClassifier,omitempty"`
	JSONClassifier *JSONClassifier `json:"JsonClassifier,omitempty"`
	CsvClassifier  *CsvClassifier  `json:"CsvClassifier,omitempty"`
}

Classifier wraps the four classifier types.

type CloudWatchEncryption

type CloudWatchEncryption struct {
	CloudWatchEncryptionMode string `json:"CloudWatchEncryptionMode,omitempty"`
	KMSKeyARN                string `json:"KmsKeyArn,omitempty"`
}

CloudWatchEncryption holds CloudWatch encryption config.

type Column

type Column struct {
	Parameters map[string]string `json:"Parameters,omitempty"`
	Name       string            `json:"Name"`
	Type       string            `json:"Type,omitempty"`
	Comment    string            `json:"Comment,omitempty"`
}

Column represents a column in a Glue table.

type ColumnStatistics

type ColumnStatistics struct {
	StatisticsData ColumnStatisticsData `json:"StatisticsData"`
	ColumnName     string               `json:"ColumnName"`
	ColumnType     string               `json:"ColumnType,omitempty"`
	AnalyzedTime   float64              `json:"AnalyzedTime,omitempty"`
}

ColumnStatistics represents statistics for a single column.

type ColumnStatisticsData

type ColumnStatisticsData struct {
	BooleanColumnStatisticsData any    `json:"BooleanColumnStatisticsData,omitempty"`
	DateColumnStatisticsData    any    `json:"DateColumnStatisticsData,omitempty"`
	DecimalColumnStatisticsData any    `json:"DecimalColumnStatisticsData,omitempty"`
	DoubleColumnStatisticsData  any    `json:"DoubleColumnStatisticsData,omitempty"`
	LongColumnStatisticsData    any    `json:"LongColumnStatisticsData,omitempty"`
	StringColumnStatisticsData  any    `json:"StringColumnStatisticsData,omitempty"`
	BinaryColumnStatisticsData  any    `json:"BinaryColumnStatisticsData,omitempty"`
	Type                        string `json:"Type"`
}

ColumnStatisticsData holds statistics for a column.

type ColumnStatisticsTaskRun

type ColumnStatisticsTaskRun struct {
	StartedOn                 time.Time `json:"StartedOn"`
	DatabaseName              string    `json:"DatabaseName"`
	TableName                 string    `json:"TableName"`
	ColumnStatisticsTaskRunID string    `json:"ColumnStatisticsTaskRunId"`
	Status                    string    `json:"Status"`
}

ColumnStatisticsTaskRun represents a column statistics task run.

type ColumnStatisticsTaskSettings

type ColumnStatisticsTaskSettings struct {
	Schedule       CrawlerSchedule `json:"Schedule,omitzero"`
	DatabaseName   string          `json:"DatabaseName"`
	TableName      string          `json:"TableName"`
	RoleArn        string          `json:"RoleArn,omitempty"`
	ColumnNameList []string        `json:"ColumnNameList,omitempty"`
}

ColumnStatisticsTaskSettings represents column statistics task settings.

type Connection

type Connection struct {
	ConnectionProperties map[string]string `json:"ConnectionProperties,omitempty"`
	Tags                 map[string]string `json:"-"`
	Name                 string            `json:"Name"`
	ConnectionType       string            `json:"ConnectionType,omitempty"`
	ARN                  string            `json:"Arn,omitempty"`
	CreationTime         float64           `json:"CreationTime,omitempty"`
	LastUpdatedTime      float64           `json:"LastUpdatedTime,omitempty"`
}

Connection represents a Glue connection.

type ConnectionPasswordEncryption

type ConnectionPasswordEncryption struct {
	AwsKmsKeyID                       string `json:"AwsKmsKeyId,omitempty"`
	ReturnConnectionPasswordEncrypted bool   `json:"ReturnConnectionPasswordEncrypted"`
}

ConnectionPasswordEncryption holds connection password encryption config.

type ConnectionTypeInfo

type ConnectionTypeInfo struct {
	// ConnectionType is the canonical connector name (e.g. "JDBC", "SALESFORCE").
	ConnectionType string `json:"ConnectionType"`
	// Description is a human-readable description of the connector.
	Description string `json:"Description,omitempty"`
	// Category groups connectors (e.g. "DATABASE", "SAAS", "STREAMING").
	Category string `json:"Category,omitempty"`
	// Capabilities lists supported connector capabilities.
	Capabilities []string `json:"Capabilities,omitempty"`
	// BuiltIn reports whether this is an AWS-managed (undeletable) type.
	BuiltIn bool `json:"BuiltIn"`
}

ConnectionTypeInfo describes a Glue connection type (connector). BuiltIn types are AWS-managed and undeletable; custom types are registered via RegisterConnectionType.

type ConnectionsList

type ConnectionsList struct {
	Connections []string `json:"Connections,omitempty"`
}

ConnectionsList holds connections for a Glue job.

type CrawlHistoryEntry

type CrawlHistoryEntry struct {
	CrawlID   string  `json:"CrawlId,omitempty"`
	State     string  `json:"State,omitempty"`
	Summary   string  `json:"Summary,omitempty"`
	StartTime float64 `json:"StartTime,omitempty"`
	EndTime   float64 `json:"EndTime,omitempty"`
}

CrawlHistoryEntry records a single crawl run for ListCrawls.

type Crawler

type Crawler struct {
	Tags          map[string]string `json:"-"`
	Schedule      CrawlerSchedule   `json:"Schedule,omitzero"`
	Name          string            `json:"Name"`
	Role          string            `json:"Role"`
	DatabaseName  string            `json:"DatabaseName"`
	State         string            `json:"State"`
	ARN           string            `json:"Arn,omitempty"`
	Description   string            `json:"Description,omitempty"`
	Configuration string            `json:"Configuration,omitempty"`
	TablePrefix   string            `json:"TablePrefix,omitempty"`
	Classifiers   []string          `json:"Classifiers,omitempty"`
	Targets       CrawlerTarget     `json:"Targets,omitzero"`
	CreationTime  float64           `json:"CreationTime,omitempty"`
	LastUpdated   float64           `json:"LastUpdated,omitempty"`
}

Crawler represents a Glue crawler.

type CrawlerMetrics

type CrawlerMetrics struct {
	CrawlerName          string  `json:"CrawlerName"`
	TimeLeftSeconds      float64 `json:"TimeLeftSeconds"`
	LastRuntimeSeconds   float64 `json:"LastRuntimeSeconds"`
	MedianRuntimeSeconds float64 `json:"MedianRuntimeSeconds"`
	TablesCreated        int     `json:"TablesCreated"`
	TablesUpdated        int     `json:"TablesUpdated"`
	TablesDeleted        int     `json:"TablesDeleted"`
	StillEstimating      bool    `json:"StillEstimating"`
}

CrawlerMetrics holds runtime metrics for a crawler.

type CrawlerOptions

type CrawlerOptions struct {
	Description   string
	Schedule      string // cron expression; empty means on-demand (no schedule)
	Configuration string
	TablePrefix   string
	Classifiers   []string
}

CrawlerOptions holds the CreateCrawler/UpdateCrawler fields beyond the core name/role/database/targets/tags accepted by CreateCrawler and UpdateCrawler. It exists so those two methods' signatures — called from outside this package (services/cloudformation) — stay additive/stable while still letting the Glue handler pass through Schedule, Classifiers, Configuration, TablePrefix and Description.

type CrawlerSchedule

type CrawlerSchedule struct {
	ScheduleExpression string `json:"ScheduleExpression,omitempty"`
	State              string `json:"State,omitempty"`
}

CrawlerSchedule represents the schedule configuration for a crawler.

type CrawlerTarget

type CrawlerTarget struct {
	S3Targets      []S3Target      `json:"S3Targets,omitempty"`
	JdbcTargets    []JDBCTarget    `json:"JdbcTargets,omitempty"`
	CatalogTargets []CatalogTarget `json:"CatalogTargets,omitempty"`
}

CrawlerTarget specifies the data stores a crawler scans. AWS supports many target store kinds (S3, JDBC, catalog, DynamoDB, Delta, Hudi, Iceberg, MongoDB); this backend models the three most commonly used ones. Additional kinds are deferred (see PARITY.md).

type CsvClassifier

type CsvClassifier struct {
	Name        string   `json:"Name"`
	Delimiter   string   `json:"Delimiter,omitempty"`
	QuoteSymbol string   `json:"QuoteSymbol,omitempty"`
	Header      []string `json:"Header,omitempty"`
}

CsvClassifier is a CSV-based classifier.

type CustomEntityType

type CustomEntityType struct {
	Name         string   `json:"Name"`
	RegexString  string   `json:"RegexString,omitempty"`
	ContextWords []string `json:"ContextWords,omitempty"`
}

CustomEntityType represents a Glue custom entity type.

type DQRuleRecommendationRun

type DQRuleRecommendationRun struct {
	StartedOn           time.Time `json:"StartedOn"`
	RecommendationRunID string    `json:"RecommendationRunId"`
	DataSourceS3Path    string    `json:"DataSourceS3Path,omitempty"`
	Status              string    `json:"Status"`
}

DQRuleRecommendationRun represents a data quality rule recommendation run.

type DataCatalogEncryptionSettings

type DataCatalogEncryptionSettings struct {
	EncryptionAtRest             *EncryptionAtRest             `json:"EncryptionAtRest,omitempty"`
	ConnectionPasswordEncryption *ConnectionPasswordEncryption `json:"ConnectionPasswordEncryption,omitempty"`
}

DataCatalogEncryptionSettings holds catalog encryption settings.

type DataQualityEvaluationRun

type DataQualityEvaluationRun struct {
	RunID        string   `json:"RunId"`
	Status       string   `json:"Status"`
	ErrorString  string   `json:"ErrorString,omitempty"`
	RulesetNames []string `json:"RulesetNames,omitempty"`
	StartedOn    float64  `json:"StartedOn,omitempty"`
	CompletedOn  float64  `json:"CompletedOn,omitempty"`
}

DataQualityEvaluationRun represents a data quality ruleset evaluation run.

type DataQualityResult

type DataQualityResult struct {
	ResultID string  `json:"ResultId"`
	Score    float64 `json:"Score,omitempty"`
}

DataQualityResult represents a Glue data quality result.

type DataQualityRuleset

type DataQualityRuleset struct {
	Tags           map[string]string `json:"-"`
	Name           string            `json:"Name"`
	Ruleset        string            `json:"Ruleset,omitempty"`
	Description    string            `json:"Description,omitempty"`
	ARN            string            `json:"Arn,omitempty"`
	CreatedOn      float64           `json:"CreatedOn,omitempty"`
	LastModifiedOn float64           `json:"LastModifiedOn,omitempty"`
}

DataQualityRuleset represents a Glue data quality ruleset.

type Database

type Database struct {
	Tags        map[string]string `json:"-"`
	Name        string            `json:"Name"`
	Description string            `json:"Description,omitempty"`
	CatalogID   string            `json:"CatalogId"`
	ARN         string            `json:"Arn,omitempty"`
	CreateTime  float64           `json:"CreateTime,omitempty"`
}

Database represents a Glue catalog database.

type DatabaseInput

type DatabaseInput struct {
	Name        string `json:"Name"`
	Description string `json:"Description,omitempty"`
}

DatabaseInput is the input for creating or updating a Glue database.

type DevEndpoint

type DevEndpoint struct {
	Arguments    map[string]string `json:"Arguments,omitempty"`
	EndpointName string            `json:"EndpointName"`
	Status       string            `json:"Status,omitempty"`
}

DevEndpoint represents a Glue development endpoint.

type EncryptionAtRest

type EncryptionAtRest struct {
	CatalogEncryptionMode        string `json:"CatalogEncryptionMode,omitempty"`
	SseAwsKmsKeyID               string `json:"SseAwsKmsKeyId,omitempty"`
	CatalogEncryptionServiceRole string `json:"CatalogEncryptionServiceRole,omitempty"`
}

EncryptionAtRest holds at-rest encryption config.

type EncryptionConfiguration

type EncryptionConfiguration struct {
	CloudWatchEncryption   *CloudWatchEncryption   `json:"CloudWatchEncryption,omitempty"`
	JobBookmarksEncryption *JobBookmarksEncryption `json:"JobBookmarksEncryption,omitempty"`
	S3Encryption           []S3EncryptionEntry     `json:"S3Encryption,omitempty"`
}

EncryptionConfiguration holds encryption settings for a SecurityConfiguration.

type EntityDescriptor

type EntityDescriptor struct {
	EntityName     string `json:"EntityName"`
	Label          string `json:"Label,omitempty"`
	Category       string `json:"Category,omitempty"`
	IsParentEntity bool   `json:"IsParentEntity"`
}

EntityDescriptor describes an entity exposed by a connector, matching the shape AWS Glue returns from ListEntities' Entities list.

type EntityField

type EntityField struct {
	FieldName                string   `json:"FieldName"`
	Label                    string   `json:"Label,omitempty"`
	Description              string   `json:"Description,omitempty"`
	FieldType                string   `json:"FieldType"`
	NativeDataType           string   `json:"NativeDataType,omitempty"`
	SupportedFilterOperators []string `json:"SupportedFilterOperators,omitempty"`
	IsNullable               bool     `json:"IsNullable"`
	IsRetrievable            bool     `json:"IsRetrievable"`
	IsPartitionable          bool     `json:"IsPartitionable"`
	IsCreateable             bool     `json:"IsCreateable"`
	IsUpdateable             bool     `json:"IsUpdateable"`
	IsUpsertable             bool     `json:"IsUpsertable"`
	IsFilterable             bool     `json:"IsFilterable"`
}

EntityField describes a single schema field of a connector entity, matching the shape AWS Glue returns from DescribeEntity's Fields list.

type ErrorDetail

type ErrorDetail struct {
	ErrorCode    string `json:"ErrorCode"`
	ErrorMessage string `json:"ErrorMessage"`
}

ErrorDetail holds an error code and message for batch operation failures.

type ExecutionProperty

type ExecutionProperty struct {
	MaxConcurrentRuns int `json:"MaxConcurrentRuns,omitempty"`
}

ExecutionProperty holds max concurrent runs for a Glue job.

type GlueTable

type GlueTable struct {
	CatalogID      string `json:"CatalogId,omitempty"`
	DatabaseName   string `json:"DatabaseName"`
	TableName      string `json:"TableName"`
	ConnectionName string `json:"ConnectionName,omitempty"`
}

GlueTable holds a reference to a Glue catalog table used by an ML transform.

type GrokClassifier

type GrokClassifier struct {
	Name           string `json:"Name"`
	Classification string `json:"Classification,omitempty"`
	GrokPattern    string `json:"GrokPattern,omitempty"`
	CustomPatterns string `json:"CustomPatterns,omitempty"`
}

GrokClassifier is a Grok-based classifier.

type Handler

type Handler struct {
	Backend StorageBackend
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for AWS Glue operations.

func NewHandler

func NewHandler(backend StorageBackend) *Handler

NewHandler creates a new Glue handler backed by backend.

func (*Handler) ChaosOperations

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

ChaosOperations returns all operations that can be fault-injected.

func (*Handler) ChaosRegions

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

ChaosRegions returns all regions this handler instance handles.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase AWS service name for fault rule matching.

func (*Handler) ExtractOperation

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

ExtractOperation returns the operation name from the X-Amz-Target header.

func (*Handler) ExtractResource

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

ExtractResource extracts a resource identifier from the request body.

func (*Handler) GetSupportedOperations

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

GetSupportedOperations returns the list of supported Glue operations.

func (*Handler) Handler

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

Handler returns the Echo handler function for Glue requests.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears all backend state. Used for test isolation.

func (*Handler) Restore

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

Restore implements Snapshottable by delegating to the backend when it supports it.

func (*Handler) RouteMatcher

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

RouteMatcher returns a function that matches Glue requests via X-Amz-Target.

func (*Handler) Shutdown

func (h *Handler) Shutdown(_ context.Context)

Shutdown implements service.Shutdowner. It stops the reconciler and waits for its goroutine to exit, guaranteeing a clean, leak-free shutdown.

func (*Handler) Snapshot

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

Snapshot implements Snapshottable by delegating to the backend when it supports it.

func (*Handler) StartWorker

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

StartWorker implements service.BackgroundWorker. It starts the managed lifecycle reconciler using the framework-provided background context, so no context.Background() is introduced.

type IdentityCenterConfig

type IdentityCenterConfig struct {
	InstanceARN string `json:"InstanceArn,omitempty"`
	Status      string `json:"Status"`
}

IdentityCenterConfig represents the Glue Identity Center configuration.

type InMemoryBackend

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

InMemoryBackend stores Glue state in memory. Most resource collections are *store.Table[T], registered once on b.registry via registerAllTables (see store_setup.go); a handful remain plain maps because their key is not a pure function of the stored value's own fields, or because they hold a one-to-many history/list rather than a single value per key -- see the comment above registerAllTables in store_setup.go for the full list and rationale.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new in-memory Glue backend.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the backend account ID.

func (*InMemoryBackend) AddBlueprintInternal

func (b *InMemoryBackend) AddBlueprintInternal(bp *Blueprint)

AddBlueprintInternal adds a blueprint directly to the backend without validation.

func (*InMemoryBackend) AddConnectionInternal

func (b *InMemoryBackend) AddConnectionInternal(conn *Connection)

AddConnectionInternal adds a connection directly to the backend without validation.

func (*InMemoryBackend) AddCustomEntityTypeInternal

func (b *InMemoryBackend) AddCustomEntityTypeInternal(cet *CustomEntityType)

AddCustomEntityTypeInternal adds a custom entity type directly to the backend without validation.

func (*InMemoryBackend) AddDataQualityEvalRunInternal

func (b *InMemoryBackend) AddDataQualityEvalRunInternal(run *DataQualityEvaluationRun)

AddDataQualityEvalRunInternal adds an evaluation run directly without validation.

func (*InMemoryBackend) AddDataQualityResultInternal

func (b *InMemoryBackend) AddDataQualityResultInternal(dqr *DataQualityResult)

AddDataQualityResultInternal adds a data quality result directly to the backend without validation.

func (*InMemoryBackend) AddDataQualityRulesetInternal

func (b *InMemoryBackend) AddDataQualityRulesetInternal(r *DataQualityRuleset)

AddDataQualityRulesetInternal adds a data quality ruleset without validation.

func (*InMemoryBackend) AddDevEndpointInternal

func (b *InMemoryBackend) AddDevEndpointInternal(dep *DevEndpoint)

AddDevEndpointInternal adds a dev endpoint directly to the backend without validation.

func (*InMemoryBackend) AddJobRunInternal

func (b *InMemoryBackend) AddJobRunInternal(run *JobRun)

AddJobRunInternal adds a job run directly to the backend without validation.

func (*InMemoryBackend) AddPartitionInternal

func (b *InMemoryBackend) AddPartitionInternal(dbName, tableName string, p *Partition)

AddPartitionInternal adds a partition directly to the backend without validation. dbName/tableName are stamped onto the stored copy (rather than trusted from the caller-supplied p, which the existing test-seed callers often leave zero-valued) so the store.Table key -- derived purely from the value via partitionEntryKeyFn -- matches the dbName/tableName this entry is filed under, exactly as the previous raw map (keyed externally on the same two parameters) did.

func (*InMemoryBackend) AddTableVersionInternal

func (b *InMemoryBackend) AddTableVersionInternal(dbName, tableName string, tv *TableVersion)

AddTableVersionInternal adds a table version directly to the backend without validation. dbName/tableName are stamped onto the stored copy's nested Table field (rather than trusted from the caller-supplied tv, which the existing test-seed callers often leave zero-valued) so the store.Table key -- derived purely from the value via tableVersionEntryKeyFn -- matches the dbName/tableName this entry is filed under, exactly as the previous raw map (keyed externally on the same two parameters) did.

func (*InMemoryBackend) BatchCreatePartition

func (b *InMemoryBackend) BatchCreatePartition(
	dbName, tableName string,
	inputs []PartitionInput,
) ([]*Partition, []PartitionError)

BatchCreatePartition creates multiple partitions for a table.

func (*InMemoryBackend) BatchDeleteConnection

func (b *InMemoryBackend) BatchDeleteConnection(names []string) ([]string, []ErrorDetail)

BatchDeleteConnection deletes multiple connections.

func (*InMemoryBackend) BatchDeletePartition

func (b *InMemoryBackend) BatchDeletePartition(
	dbName, tableName string,
	values []PartitionValueList,
) []PartitionError

BatchDeletePartition deletes multiple partitions for a table.

func (*InMemoryBackend) BatchDeleteTable

func (b *InMemoryBackend) BatchDeleteTable(dbName string, tableNames []string) []TableError

BatchDeleteTable deletes multiple tables and cascades to partitions and versions.

func (*InMemoryBackend) BatchDeleteTableVersion

func (b *InMemoryBackend) BatchDeleteTableVersion(
	dbName, tableName string,
	versionIDs []string,
) []TableVersionError

BatchDeleteTableVersion deletes multiple table versions.

func (*InMemoryBackend) BatchGetBlueprints

func (b *InMemoryBackend) BatchGetBlueprints(names []string) ([]*Blueprint, []string)

BatchGetBlueprints retrieves multiple blueprints by name.

func (*InMemoryBackend) BatchGetCrawlers

func (b *InMemoryBackend) BatchGetCrawlers(names []string) ([]*Crawler, []string)

BatchGetCrawlers retrieves multiple crawlers by name.

func (*InMemoryBackend) BatchGetCustomEntityTypes

func (b *InMemoryBackend) BatchGetCustomEntityTypes(
	names []string,
) ([]*CustomEntityType, []string)

BatchGetCustomEntityTypes retrieves multiple custom entity types by name.

func (*InMemoryBackend) BatchGetDataQualityResult

func (b *InMemoryBackend) BatchGetDataQualityResult(
	resultIDs []string,
) ([]*DataQualityResult, []ErrorDetail)

BatchGetDataQualityResult retrieves multiple data quality results by ID.

func (*InMemoryBackend) BatchGetDevEndpoints

func (b *InMemoryBackend) BatchGetDevEndpoints(names []string) ([]*DevEndpoint, []string)

BatchGetDevEndpoints retrieves multiple dev endpoints by name.

func (*InMemoryBackend) BatchGetTableOptimizer

func (b *InMemoryBackend) BatchGetTableOptimizer(
	entries []BatchGetTableOptimizerEntry,
) ([]*TableOptimizer, []BatchGetTableOptimizerError)

func (*InMemoryBackend) BatchGetTriggers

func (b *InMemoryBackend) BatchGetTriggers(names []string) ([]*Trigger, []string)

BatchGetTriggers retrieves multiple triggers by name.

func (*InMemoryBackend) BatchGetWorkflows

func (b *InMemoryBackend) BatchGetWorkflows(names []string) ([]*Workflow, []string)

BatchGetWorkflows retrieves multiple workflows by name.

func (*InMemoryBackend) BatchStopJobRun

func (b *InMemoryBackend) BatchStopJobRun(jobName string, runIDs []string) []BatchStopJobRunError

BatchStopJobRun stops multiple job runs by setting their state to STOPPING. Only RUNNING or STARTING runs can be stopped.

func (*InMemoryBackend) CancelDataQualityRuleRecommendationRun

func (b *InMemoryBackend) CancelDataQualityRuleRecommendationRun(runID string) error

CancelDataQualityRuleRecommendationRun marks a recommendation run as cancelled.

func (*InMemoryBackend) CancelDataQualityRulesetEvaluationRun

func (b *InMemoryBackend) CancelDataQualityRulesetEvaluationRun(runID string) error

CancelDataQualityRulesetEvaluationRun cancels an active evaluation run.

func (*InMemoryBackend) CancelMLTaskRun

func (b *InMemoryBackend) CancelMLTaskRun(transformID, taskRunID string) error

CancelMLTaskRun transitions an ML task run to STOPPED status.

func (*InMemoryBackend) CancelStatement

func (b *InMemoryBackend) CancelStatement(sessionID string, statementID int32) error

func (*InMemoryBackend) Close

func (b *InMemoryBackend) Close()

Close stops the background reconciler and waits for its goroutine to exit. It is retained for callers (and tests) that manage a backend's lifecycle directly; it is an idempotent alias for StopReconciler.

func (*InMemoryBackend) CreateBlueprint

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

CreateBlueprint stores a new blueprint.

func (*InMemoryBackend) CreateCatalog

func (b *InMemoryBackend) CreateCatalog(
	catalogID, name, description string,
	params map[string]string,
) error

func (*InMemoryBackend) CreateClassifier

func (b *InMemoryBackend) CreateClassifier(c Classifier) error

CreateClassifier creates a new Glue classifier.

func (*InMemoryBackend) CreateColumnStatisticsTaskSettings

func (b *InMemoryBackend) CreateColumnStatisticsTaskSettings(
	dbName, tableName, roleArn string,
	columns []string,
) (*ColumnStatisticsTaskSettings, error)

CreateColumnStatisticsTaskSettings stores task settings.

func (*InMemoryBackend) CreateConnection

func (b *InMemoryBackend) CreateConnection(
	name, connType string, props map[string]string, tags map[string]string,
) (*Connection, error)

CreateConnection creates a new Glue connection.

func (*InMemoryBackend) CreateCrawler

func (b *InMemoryBackend) CreateCrawler(
	name, role, dbName string,
	targets CrawlerTarget,
	tags map[string]string,
) (*Crawler, error)

CreateCrawler creates a new Glue crawler.

func (*InMemoryBackend) CreateCrawlerWithOptions

func (b *InMemoryBackend) CreateCrawlerWithOptions(
	name, role, dbName string,
	targets CrawlerTarget,
	tags map[string]string,
	opts CrawlerOptions,
) (*Crawler, error)

CreateCrawlerWithOptions is CreateCrawler plus the optional creation-time settings AWS's CreateCrawlerRequest supports (Schedule/Classifiers/Configuration/TablePrefix/Description) that the original positional-argument CreateCrawler predates.

func (*InMemoryBackend) CreateCustomEntityType

func (b *InMemoryBackend) CreateCustomEntityType(
	name, regexString string,
	contextWords []string,
) (*CustomEntityType, error)

CreateCustomEntityType stores a new custom entity type.

func (*InMemoryBackend) CreateDataQualityRuleset

func (b *InMemoryBackend) CreateDataQualityRuleset(
	name, ruleset string,
	tags map[string]string,
) (*DataQualityRuleset, error)

CreateDataQualityRuleset creates a new data quality ruleset.

func (*InMemoryBackend) CreateDatabase

func (b *InMemoryBackend) CreateDatabase(
	input DatabaseInput,
	tags map[string]string,
) (*Database, error)

CreateDatabase creates a new Glue database.

func (*InMemoryBackend) CreateDevEndpoint

func (b *InMemoryBackend) CreateDevEndpoint(name string) (*DevEndpoint, error)

CreateDevEndpoint creates a new Glue dev endpoint.

func (*InMemoryBackend) CreateGlueIdentityCenterConfiguration

func (b *InMemoryBackend) CreateGlueIdentityCenterConfiguration(instanceARN string) error

CreateGlueIdentityCenterConfiguration creates the configuration.

func (*InMemoryBackend) CreateIntegration

func (b *InMemoryBackend) CreateIntegration(name string, tags map[string]string) (*Integration, error)

CreateIntegration stores a new integration.

func (*InMemoryBackend) CreateIntegrationResourceProperty

func (b *InMemoryBackend) CreateIntegrationResourceProperty(
	resourceArn string,
	sourceProps, targetProps map[string]string,
) (*IntegrationResourceProperty, error)

CreateIntegrationResourceProperty stores properties for an integration resource.

func (*InMemoryBackend) CreateIntegrationTableProperties

func (b *InMemoryBackend) CreateIntegrationTableProperties(
	resourceArn, tableName string,
	sourceConfig, targetConfig map[string]any,
) error

CreateIntegrationTableProperties stores properties for an integration table.

func (*InMemoryBackend) CreateJob

func (b *InMemoryBackend) CreateJob(input Job) (*Job, error)

CreateJob creates a new Glue job.

func (*InMemoryBackend) CreateMLTransform

func (b *InMemoryBackend) CreateMLTransform(
	name, description, role string,
	tables []GlueTable,
	params MLTransformParameter,
	tags map[string]string,
) (*MLTransform, error)

func (*InMemoryBackend) CreatePartitionIndex

func (b *InMemoryBackend) CreatePartitionIndex(dbName, tableName string, input PartitionIndex) error

CreatePartitionIndex creates an index for an existing table's partition keys.

func (*InMemoryBackend) CreateRegistry

func (b *InMemoryBackend) CreateRegistry(
	name, description string,
	tags map[string]string,
) (*Registry, error)

CreateRegistry creates a new Glue Schema Registry.

func (*InMemoryBackend) CreateSchema

func (b *InMemoryBackend) CreateSchema(
	registryName, schemaName, dataFormat, compatibility, description string,
	tags map[string]string,
) (*Schema, error)

CreateSchema creates a new schema in the given registry.

func (*InMemoryBackend) CreateSecurityConfiguration

func (b *InMemoryBackend) CreateSecurityConfiguration(
	name string,
	enc EncryptionConfiguration,
) (*SecurityConfiguration, error)

func (*InMemoryBackend) CreateSession

func (b *InMemoryBackend) CreateSession(
	id, role string,
	cmd SessionCommand,
	opts Session,
) (*Session, error)

func (*InMemoryBackend) CreateTable

func (b *InMemoryBackend) CreateTable(dbName string, input TableInput) (*Table, error)

CreateTable creates a new Glue table in a database.

func (*InMemoryBackend) CreateTableOptimizer

func (b *InMemoryBackend) CreateTableOptimizer(
	catalogID, dbName, tableName, optimizerType string,
	config TableOptimizerConfiguration,
) error

CreateTableOptimizer registers a table optimizer and, mirroring the automatic compaction run AWS kicks off shortly after an optimizer is enabled, seeds an initial completed run so ListTableOptimizerRuns has real history to return.

func (*InMemoryBackend) CreateTrigger

func (b *InMemoryBackend) CreateTrigger(t Trigger, tags map[string]string) (*Trigger, error)

CreateTrigger creates a new Glue trigger.

func (*InMemoryBackend) CreateUsageProfile

func (b *InMemoryBackend) CreateUsageProfile(name, description string, tags map[string]string) (*UsageProfile, error)

CreateUsageProfile creates a new usage profile.

func (*InMemoryBackend) CreateUserDefinedFunction

func (b *InMemoryBackend) CreateUserDefinedFunction(
	dbName string,
	input UserDefinedFunction,
	tags map[string]string,
) (*UserDefinedFunction, error)

func (*InMemoryBackend) CreateWorkflow

func (b *InMemoryBackend) CreateWorkflow(w Workflow, tags map[string]string) (*Workflow, error)

CreateWorkflow creates a new Glue workflow.

func (*InMemoryBackend) DeleteBlueprint

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

DeleteBlueprint removes a blueprint.

func (*InMemoryBackend) DeleteCatalog

func (b *InMemoryBackend) DeleteCatalog(catalogID string) error

func (*InMemoryBackend) DeleteClassifier

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

DeleteClassifier deletes a Glue classifier by name.

func (*InMemoryBackend) DeleteColumnStatisticsForPartition

func (b *InMemoryBackend) DeleteColumnStatisticsForPartition(
	dbName, tableName string,
	partitionValues []string,
	columnName string,
) error

func (*InMemoryBackend) DeleteColumnStatisticsForTable

func (b *InMemoryBackend) DeleteColumnStatisticsForTable(
	dbName, tableName, columnName string,
) error

func (*InMemoryBackend) DeleteColumnStatisticsTaskSettings

func (b *InMemoryBackend) DeleteColumnStatisticsTaskSettings(dbName, tableName string) error

DeleteColumnStatisticsTaskSettings removes task settings.

func (*InMemoryBackend) DeleteConnection

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

DeleteConnection deletes a single Glue connection by name.

func (*InMemoryBackend) DeleteConnectionType

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

DeleteConnectionType removes a custom connection type. Deleting a built-in type returns ErrConnectionTypeBuiltIn (undeletable); deleting an unknown type returns ErrNotFound. This replaces the previous no-op that always reported success.

func (*InMemoryBackend) DeleteCrawler

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

DeleteCrawler deletes a Glue crawler by name.

func (*InMemoryBackend) DeleteCustomEntityType

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

DeleteCustomEntityType removes a custom entity type.

func (*InMemoryBackend) DeleteDataQualityRuleset

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

DeleteDataQualityRuleset removes a data quality ruleset by name.

func (*InMemoryBackend) DeleteDatabase

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

DeleteDatabase deletes a Glue database by name, also removing all its tables and partitions.

func (*InMemoryBackend) DeleteDevEndpoint

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

DeleteDevEndpoint deletes a Glue dev endpoint by name.

func (*InMemoryBackend) DeleteGlueIdentityCenterConfiguration

func (b *InMemoryBackend) DeleteGlueIdentityCenterConfiguration() error

DeleteGlueIdentityCenterConfiguration removes the configuration.

func (*InMemoryBackend) DeleteIntegration

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

DeleteIntegration removes an integration.

func (*InMemoryBackend) DeleteIntegrationResourceProperty

func (b *InMemoryBackend) DeleteIntegrationResourceProperty(resourceArn string) error

DeleteIntegrationResourceProperty removes stored integration resource properties for resourceArn. Returns ErrNotFound if none exist.

func (*InMemoryBackend) DeleteIntegrationTableProperties

func (b *InMemoryBackend) DeleteIntegrationTableProperties(resourceArn, tableName string) error

DeleteIntegrationTableProperties removes stored integration table properties for the given resource ARN and table name. Returns ErrNotFound if none exist.

func (*InMemoryBackend) DeleteJob

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

DeleteJob deletes a Glue job by name, also removing all job runs and bookmarks.

func (*InMemoryBackend) DeleteMLTransform

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

func (*InMemoryBackend) DeletePartitionIndex

func (b *InMemoryBackend) DeletePartitionIndex(dbName, tableName, indexName string) error

DeletePartitionIndex deletes an index from an existing table.

func (*InMemoryBackend) DeleteRegistry

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

DeleteRegistry deletes a registry by name.

func (*InMemoryBackend) DeleteResourcePolicy

func (b *InMemoryBackend) DeleteResourcePolicy(resourceARN, policyHash string) error

func (*InMemoryBackend) DeleteSchema

func (b *InMemoryBackend) DeleteSchema(registryName, schemaName string) error

DeleteSchema deletes a schema by registry and schema name.

func (*InMemoryBackend) DeleteSchemaVersion

func (b *InMemoryBackend) DeleteSchemaVersion(
	registryName, schemaName string,
	versionNumber int64,
) error

DeleteSchemaVersion removes a single schema version from the store. Returns ErrNotFound if the schema or version does not exist.

func (*InMemoryBackend) DeleteSecurityConfiguration

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

func (*InMemoryBackend) DeleteSession

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

func (*InMemoryBackend) DeleteTable

func (b *InMemoryBackend) DeleteTable(dbName, tableName string) error

DeleteTable deletes a Glue table and all its partitions.

func (*InMemoryBackend) DeleteTableOptimizer

func (b *InMemoryBackend) DeleteTableOptimizer(dbName, tableName, optimizerType string) error

func (*InMemoryBackend) DeleteTableVersion

func (b *InMemoryBackend) DeleteTableVersion(dbName, tableName, versionID string) error

func (*InMemoryBackend) DeleteTrigger

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

DeleteTrigger deletes a Glue trigger by name.

func (*InMemoryBackend) DeleteUsageProfile

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

DeleteUsageProfile removes a usage profile.

func (*InMemoryBackend) DeleteUserDefinedFunction

func (b *InMemoryBackend) DeleteUserDefinedFunction(dbName, name string) error

func (*InMemoryBackend) DeleteWorkflow

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

DeleteWorkflow deletes a Glue workflow and all its runs by name.

func (*InMemoryBackend) DescribeConnectionType

func (b *InMemoryBackend) DescribeConnectionType(name string) (*ConnectionTypeInfo, error)

DescribeConnectionType returns the info for a built-in or registered custom type, or ErrNotFound when the type is unknown.

func (*InMemoryBackend) DescribeEntity

func (b *InMemoryBackend) DescribeEntity(connectionName, entityName string) ([]EntityField, error)

DescribeEntity returns the schema fields for an entity reachable through a connection. It validates the connection exists and the entity is a known catalog entity, returning EntityNotFoundException otherwise — never an empty success.

func (*InMemoryBackend) DescribeRegistry

func (b *InMemoryBackend) DescribeRegistry(name string) (*Registry, error)

DescribeRegistry retrieves a registry by name.

func (*InMemoryBackend) DescribeSchema

func (b *InMemoryBackend) DescribeSchema(registryName, schemaName string) (*Schema, error)

DescribeSchema retrieves a schema by registry and schema name.

func (*InMemoryBackend) GetAllDevEndpoints

func (b *InMemoryBackend) GetAllDevEndpoints() []*DevEndpoint

GetAllDevEndpoints returns all dev endpoints sorted by name.

func (*InMemoryBackend) GetBlueprintRun

func (b *InMemoryBackend) GetBlueprintRun(blueprintName, runID string) (*BlueprintRun, error)

GetBlueprintRun returns a blueprint run by ID.

func (*InMemoryBackend) GetBlueprintRuns

func (b *InMemoryBackend) GetBlueprintRuns(blueprintName string) []*BlueprintRun

GetBlueprintRuns returns all runs for a blueprint.

func (*InMemoryBackend) GetCatalog

func (b *InMemoryBackend) GetCatalog(catalogID string) (*CatalogEntry, error)

func (*InMemoryBackend) GetCatalogImportStatus

func (b *InMemoryBackend) GetCatalogImportStatus(catalogID string) *CatalogImportStatus

GetCatalogImportStatus returns the import status for the given catalog. When catalogID is empty, the account-level status is returned. Returns nil (no error) when no import has been triggered yet.

func (*InMemoryBackend) GetCatalogs

func (b *InMemoryBackend) GetCatalogs() []*CatalogEntry

func (*InMemoryBackend) GetClassifier

func (b *InMemoryBackend) GetClassifier(name string) (*Classifier, error)

GetClassifier retrieves a Glue classifier by name.

func (*InMemoryBackend) GetClassifiers

func (b *InMemoryBackend) GetClassifiers() []*Classifier

GetClassifiers returns all Glue classifiers sorted by name.

func (*InMemoryBackend) GetColumnStatisticsForPartition

func (b *InMemoryBackend) GetColumnStatisticsForPartition(
	dbName, tableName string,
	partitionValues []string,
	columnNames []string,
) ([]*ColumnStatistics, error)

func (*InMemoryBackend) GetColumnStatisticsForTable

func (b *InMemoryBackend) GetColumnStatisticsForTable(
	dbName, tableName string,
	columnNames []string,
) ([]*ColumnStatistics, error)

func (*InMemoryBackend) GetColumnStatisticsTaskRun

func (b *InMemoryBackend) GetColumnStatisticsTaskRun(runID string) (*ColumnStatisticsTaskRun, error)

GetColumnStatisticsTaskRun returns a task run.

func (*InMemoryBackend) GetColumnStatisticsTaskRuns

func (b *InMemoryBackend) GetColumnStatisticsTaskRuns() []*ColumnStatisticsTaskRun

GetColumnStatisticsTaskRuns returns task runs as a slice (alias for ListColumnStatisticsTaskRuns).

func (*InMemoryBackend) GetColumnStatisticsTaskSettings

func (b *InMemoryBackend) GetColumnStatisticsTaskSettings(
	dbName, tableName string,
) (*ColumnStatisticsTaskSettings, error)

GetColumnStatisticsTaskSettings returns task settings.

func (*InMemoryBackend) GetConnection

func (b *InMemoryBackend) GetConnection(name string) (*Connection, error)

GetConnection retrieves a single Glue connection by name.

func (*InMemoryBackend) GetConnections

func (b *InMemoryBackend) GetConnections() []*Connection

GetConnections returns all Glue connections sorted by name.

func (*InMemoryBackend) GetCrawler

func (b *InMemoryBackend) GetCrawler(name string) (*Crawler, error)

GetCrawler retrieves a Glue crawler by name.

func (*InMemoryBackend) GetCrawlerMetrics

func (b *InMemoryBackend) GetCrawlerMetrics(crawlerNames []string) []*CrawlerMetrics

GetCrawlerMetrics returns metrics for one or all crawlers. If crawlerNames is empty, metrics for all crawlers are returned.

func (*InMemoryBackend) GetCrawlers

func (b *InMemoryBackend) GetCrawlers() []*Crawler

GetCrawlers returns all Glue crawlers sorted by name.

func (*InMemoryBackend) GetCustomEntityType

func (b *InMemoryBackend) GetCustomEntityType(name string) (*CustomEntityType, error)

GetCustomEntityType returns a custom entity type by name.

func (*InMemoryBackend) GetDataCatalogEncryptionSettings

func (b *InMemoryBackend) GetDataCatalogEncryptionSettings(
	catalogID string,
) (*DataCatalogEncryptionSettings, error)

func (*InMemoryBackend) GetDataQualityRuleRecommendationRun

func (b *InMemoryBackend) GetDataQualityRuleRecommendationRun(runID string) (*DQRuleRecommendationRun, error)

GetDataQualityRuleRecommendationRun returns a recommendation run.

func (*InMemoryBackend) GetDataQualityRuleset

func (b *InMemoryBackend) GetDataQualityRuleset(name string) (*DataQualityRuleset, error)

GetDataQualityRuleset retrieves a data quality ruleset by name.

func (*InMemoryBackend) GetDataQualityRulesetEvaluationRun

func (b *InMemoryBackend) GetDataQualityRulesetEvaluationRun(
	runID string,
) (*DataQualityEvaluationRun, error)

GetDataQualityRulesetEvaluationRun retrieves an evaluation run by ID.

func (*InMemoryBackend) GetDatabase

func (b *InMemoryBackend) GetDatabase(name string) (*Database, error)

GetDatabase retrieves a Glue database by name.

func (*InMemoryBackend) GetDatabases

func (b *InMemoryBackend) GetDatabases() []*Database

GetDatabases returns all Glue databases sorted by name.

func (*InMemoryBackend) GetDevEndpoint

func (b *InMemoryBackend) GetDevEndpoint(name string) (*DevEndpoint, error)

GetDevEndpoint retrieves a Glue dev endpoint by name.

func (*InMemoryBackend) GetEntityRecords

func (b *InMemoryBackend) GetEntityRecords(
	connectionName, entityName string,
	limit int,
	nextToken string,
) ([]map[string]any, string, error)

GetEntityRecords returns deterministic sample records for an entity reachable through a connection. It validates the connection and entity, then returns records conforming to the entity schema (AWS-shaped documents), honoring limit and nextToken index-based pagination. It never silently returns an empty success for a valid entity.

func (*InMemoryBackend) GetGlueIdentityCenterConfiguration

func (b *InMemoryBackend) GetGlueIdentityCenterConfiguration() (*IdentityCenterConfig, error)

GetGlueIdentityCenterConfiguration returns the configuration.

func (*InMemoryBackend) GetIntegrationResourceProperty

func (b *InMemoryBackend) GetIntegrationResourceProperty(resourceArn string) (*IntegrationResourceProperty, error)

GetIntegrationResourceProperty retrieves stored resource properties.

func (*InMemoryBackend) GetIntegrationTableProperties

func (b *InMemoryBackend) GetIntegrationTableProperties(
	resourceArn, tableName string,
) (*IntegrationTableProperties, error)

GetIntegrationTableProperties retrieves stored table properties.

func (*InMemoryBackend) GetJob

func (b *InMemoryBackend) GetJob(name string) (*Job, error)

GetJob retrieves a Glue job by name.

func (*InMemoryBackend) GetJobBookmark

func (b *InMemoryBackend) GetJobBookmark(jobName string) (*JobBookmark, error)

GetJobBookmark returns the bookmark for a job.

func (*InMemoryBackend) GetJobRun

func (b *InMemoryBackend) GetJobRun(jobName, runID string) (*JobRun, error)

GetJobRun retrieves a specific job run by job name and run ID.

func (*InMemoryBackend) GetJobRuns

func (b *InMemoryBackend) GetJobRuns(jobName string) ([]*JobRun, error)

GetJobRuns returns all runs for a job.

func (*InMemoryBackend) GetJobs

func (b *InMemoryBackend) GetJobs() []*Job

GetJobs returns all Glue jobs sorted by name.

func (*InMemoryBackend) GetMLTaskRun

func (b *InMemoryBackend) GetMLTaskRun(transformID, taskRunID string) (*MLTaskRun, error)

GetMLTaskRun retrieves a single ML task run by transform ID and task run ID.

func (*InMemoryBackend) GetMLTaskRuns

func (b *InMemoryBackend) GetMLTaskRuns(transformID string) ([]*MLTaskRun, error)

GetMLTaskRuns returns all task runs for a given ML transform, newest first.

func (*InMemoryBackend) GetMLTransform

func (b *InMemoryBackend) GetMLTransform(id string) (*MLTransform, error)

func (*InMemoryBackend) GetMLTransforms

func (b *InMemoryBackend) GetMLTransforms() []*MLTransform

func (*InMemoryBackend) GetMaterializedViewRefreshTaskRun

func (b *InMemoryBackend) GetMaterializedViewRefreshTaskRun(taskRunID string) (*MaterializedViewRefreshRun, error)

GetMaterializedViewRefreshTaskRun returns a refresh run.

func (*InMemoryBackend) GetPartition

func (b *InMemoryBackend) GetPartition(dbName, tableName string, values []string) (*Partition, error)

GetPartition retrieves a single partition by its values.

func (*InMemoryBackend) GetPartitionIndexes

func (b *InMemoryBackend) GetPartitionIndexes(dbName, tableName string) ([]*PartitionIndex, error)

GetPartitionIndexes lists partition indexes for an existing table.

func (*InMemoryBackend) GetPartitions

func (b *InMemoryBackend) GetPartitions(dbName, tableName string) ([]*Partition, error)

GetPartitions returns all partitions for a table, sorted by key.

func (*InMemoryBackend) GetPlan

func (b *InMemoryBackend) GetPlan(language string) (string, string)

GetPlan returns minimal ETL code appropriate for the requested language. language should be "Python" or "Scala"; defaults to Python.

func (*InMemoryBackend) GetResourcePolicy

func (b *InMemoryBackend) GetResourcePolicy(resourceARN string) (string, string, error)

func (*InMemoryBackend) GetSchemaByDefinition

func (b *InMemoryBackend) GetSchemaByDefinition(
	registryName, schemaName, definition string,
) (*SchemaVersion, error)

GetSchemaByDefinition searches all versions of the named schema for one whose SchemaDefinition exactly matches definition.

func (*InMemoryBackend) GetSchemaVersion

func (b *InMemoryBackend) GetSchemaVersion(
	registryName, schemaName string,
	versionNumber int64,
) (*SchemaVersion, error)

GetSchemaVersion retrieves a specific schema version.

func (*InMemoryBackend) GetSchemaVersionsDiff

func (b *InMemoryBackend) GetSchemaVersionsDiff(
	registryName, schemaName string,
	v1, v2 int64,
) (string, error)

GetSchemaVersionsDiff compares the definitions of two schema versions and returns a human-readable diff string (lines added in v2 prefixed with "+", lines removed prefixed with "-"). An empty string means the versions are identical.

func (*InMemoryBackend) GetSecurityConfiguration

func (b *InMemoryBackend) GetSecurityConfiguration(name string) (*SecurityConfiguration, error)

func (*InMemoryBackend) GetSession

func (b *InMemoryBackend) GetSession(id string) (*Session, error)

func (*InMemoryBackend) GetStatement

func (b *InMemoryBackend) GetStatement(sessionID string, statementID int32) (*Statement, error)

func (*InMemoryBackend) GetStatements

func (b *InMemoryBackend) GetStatements(sessionID string) ([]*Statement, error)

func (*InMemoryBackend) GetTable

func (b *InMemoryBackend) GetTable(dbName, tableName string) (*Table, error)

GetTable retrieves a Glue table.

func (*InMemoryBackend) GetTableOptimizer

func (b *InMemoryBackend) GetTableOptimizer(
	dbName, tableName, optimizerType string,
) (*TableOptimizer, error)

func (*InMemoryBackend) GetTableVersion

func (b *InMemoryBackend) GetTableVersion(
	dbName, tableName, versionID string,
) (*TableVersion, error)

GetTableVersion returns a specific version of a table.

func (*InMemoryBackend) GetTableVersions

func (b *InMemoryBackend) GetTableVersions(dbName, tableName string) []*TableVersion

GetTableVersions returns all stored versions for a table, sorted by versionID.

func (*InMemoryBackend) GetTables

func (b *InMemoryBackend) GetTables(dbName string) ([]*Table, error)

GetTables returns all tables in a database sorted by name.

func (*InMemoryBackend) GetTags

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

GetTags retrieves tags for a resource by ARN.

func (*InMemoryBackend) GetTrigger

func (b *InMemoryBackend) GetTrigger(name string) (*Trigger, error)

GetTrigger retrieves a Glue trigger by name.

func (*InMemoryBackend) GetTriggers

func (b *InMemoryBackend) GetTriggers() []*Trigger

GetTriggers returns all Glue triggers sorted by name.

func (*InMemoryBackend) GetUsageProfile

func (b *InMemoryBackend) GetUsageProfile(name string) (*UsageProfile, error)

GetUsageProfile returns a usage profile by name.

func (*InMemoryBackend) GetUserDefinedFunction

func (b *InMemoryBackend) GetUserDefinedFunction(
	dbName, name string,
) (*UserDefinedFunction, error)

func (*InMemoryBackend) GetUserDefinedFunctions

func (b *InMemoryBackend) GetUserDefinedFunctions(dbName string) []*UserDefinedFunction

func (*InMemoryBackend) GetWorkflow

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

GetWorkflow retrieves a Glue workflow by name.

func (*InMemoryBackend) GetWorkflowRun

func (b *InMemoryBackend) GetWorkflowRun(workflowName, runID string) (*WorkflowRun, error)

GetWorkflowRun retrieves a specific workflow run by workflow name and run ID.

func (*InMemoryBackend) GetWorkflowRuns

func (b *InMemoryBackend) GetWorkflowRuns(workflowName string) ([]*WorkflowRun, error)

GetWorkflowRuns returns all runs for a workflow.

func (*InMemoryBackend) GetWorkflows

func (b *InMemoryBackend) GetWorkflows() []string

GetWorkflows returns all Glue workflows sorted by name.

func (*InMemoryBackend) ImportCatalogToGlue

func (b *InMemoryBackend) ImportCatalogToGlue(catalogID string) error

ImportCatalogToGlue marks the given catalog (or the account-level catalog when catalogID is empty) as imported from a Hive metastore.

func (*InMemoryBackend) ListBlueprints

func (b *InMemoryBackend) ListBlueprints() []string

ListBlueprints returns all blueprint names.

func (*InMemoryBackend) ListColumnStatisticsTaskRuns

func (b *InMemoryBackend) ListColumnStatisticsTaskRuns() []*ColumnStatisticsTaskRun

ListColumnStatisticsTaskRuns returns all task runs.

func (*InMemoryBackend) ListConnectionTypes

func (b *InMemoryBackend) ListConnectionTypes() []*ConnectionTypeInfo

ListConnectionTypes returns all built-in and registered custom connection types sorted by name.

func (*InMemoryBackend) ListCrawlers

func (b *InMemoryBackend) ListCrawlers() []string

ListCrawlers returns crawler names sorted alphabetically.

func (*InMemoryBackend) ListCrawls

func (b *InMemoryBackend) ListCrawls(crawlerName string) ([]*CrawlHistoryEntry, error)

ListCrawls returns the crawl history for a crawler, newest first.

func (*InMemoryBackend) ListCustomEntityTypes

func (b *InMemoryBackend) ListCustomEntityTypes() []*CustomEntityType

ListCustomEntityTypes returns all custom entity type names.

func (*InMemoryBackend) ListDataQualityEvaluationRuns

func (b *InMemoryBackend) ListDataQualityEvaluationRuns() []*DataQualityEvaluationRun

ListDataQualityEvaluationRuns returns all DataQuality ruleset evaluation runs.

func (*InMemoryBackend) ListDataQualityResults

func (b *InMemoryBackend) ListDataQualityResults() []*DataQualityResult

ListDataQualityResults returns all DataQuality results.

func (*InMemoryBackend) ListDataQualityRuleRecommendationRuns

func (b *InMemoryBackend) ListDataQualityRuleRecommendationRuns() []*DQRuleRecommendationRun

ListDataQualityRuleRecommendationRuns returns all recommendation runs.

func (*InMemoryBackend) ListDataQualityRulesets

func (b *InMemoryBackend) ListDataQualityRulesets() []*DataQualityRuleset

ListDataQualityRulesets returns all rulesets sorted by name.

func (*InMemoryBackend) ListDataQualityStatisticAnnotations

func (b *InMemoryBackend) ListDataQualityStatisticAnnotations(profileID, statisticID string) []*StatisticAnnotation

ListDataQualityStatisticAnnotations returns stored annotations, optionally filtered by profile ID and/or statistic ID, sorted by key for a deterministic response.

func (*InMemoryBackend) ListEntities

func (b *InMemoryBackend) ListEntities(connectionName string) ([]EntityDescriptor, error)

ListEntities returns the entities reachable through a connection, sorted by name.

func (*InMemoryBackend) ListIntegrationResourceProperties

func (b *InMemoryBackend) ListIntegrationResourceProperties() []*IntegrationResourceProperty

ListIntegrationResourceProperties returns all stored integration resource properties, sorted by resource ARN for a deterministic response.

func (*InMemoryBackend) ListIntegrations

func (b *InMemoryBackend) ListIntegrations() []*Integration

ListIntegrations returns all integrations.

func (*InMemoryBackend) ListMaterializedViewRefreshTaskRuns

func (b *InMemoryBackend) ListMaterializedViewRefreshTaskRuns() []*MaterializedViewRefreshRun

ListMaterializedViewRefreshTaskRuns returns all refresh runs.

func (*InMemoryBackend) ListRegistries

func (b *InMemoryBackend) ListRegistries() []*Registry

ListRegistries returns all registries sorted by name.

func (*InMemoryBackend) ListResourcePolicies

func (b *InMemoryBackend) ListResourcePolicies() []*resourcePolicyEntry

ListResourcePolicies returns every stored resource policy (per-resource ARN policies plus the account-level policy, if set), sorted by key for a deterministic response.

func (*InMemoryBackend) ListSchemaVersions

func (b *InMemoryBackend) ListSchemaVersions(registryName, schemaName string) []*SchemaVersion

ListSchemaVersions returns all versions for a schema.

func (*InMemoryBackend) ListSchemas

func (b *InMemoryBackend) ListSchemas(registryName string) []*Schema

ListSchemas returns all schemas for a registry.

func (*InMemoryBackend) ListSecurityConfigurations

func (b *InMemoryBackend) ListSecurityConfigurations() []*SecurityConfiguration

func (*InMemoryBackend) ListSessions

func (b *InMemoryBackend) ListSessions() []*Session

func (*InMemoryBackend) ListUsageProfiles

func (b *InMemoryBackend) ListUsageProfiles() []*UsageProfile

ListUsageProfiles returns all usage profiles.

func (*InMemoryBackend) ModifyIntegration

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

ModifyIntegration updates an integration.

func (*InMemoryBackend) PutDataCatalogEncryptionSettings

func (b *InMemoryBackend) PutDataCatalogEncryptionSettings(
	catalogID string,
	settings DataCatalogEncryptionSettings,
) error

func (*InMemoryBackend) PutDataQualityStatisticAnnotation

func (b *InMemoryBackend) PutDataQualityStatisticAnnotation(profileID, statisticID, inclusion string)

PutDataQualityStatisticAnnotation stores (or overwrites) the inclusion annotation for a profile/statistic pair.

func (*InMemoryBackend) PutResourcePolicy

func (b *InMemoryBackend) PutResourcePolicy(
	policy, resourceARN, existsCondition, hashCondition string,
) (string, error)

PutResourcePolicy creates or updates a resource policy (or the account-level policy when resourceARN is empty). existsCondition ("MUST_EXIST"/"NOT_EXIST"/"" or "NONE") and hashCondition mirror PutResourcePolicyInput's PolicyExistsCondition/PolicyHashCondition optimistic-concurrency guards.

func (*InMemoryBackend) PutSchemaVersionMetadata

func (b *InMemoryBackend) PutSchemaVersionMetadata(schemaVersionID, key, value string) error

PutSchemaVersionMetadata stores a key-value metadata pair for a schema version. schemaVersionID must be a valid version ID registered via RegisterSchemaVersion.

func (*InMemoryBackend) PutWorkflowRunProperties

func (b *InMemoryBackend) PutWorkflowRunProperties(
	workflowName, runID string,
	props map[string]string,
) error

func (*InMemoryBackend) QuerySchemaVersionMetadata

func (b *InMemoryBackend) QuerySchemaVersionMetadata(schemaVersionID string) map[string]string

QuerySchemaVersionMetadata returns all metadata key-value pairs for the given schema version ID. Returns an empty map when none have been stored.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the backend region.

func (*InMemoryBackend) RegisterConnectionType

func (b *InMemoryBackend) RegisterConnectionType(name, description string) (*ConnectionTypeInfo, error)

RegisterConnectionType registers a custom connection type, returning the stored info. Registering a name that collides with a built-in type is rejected (AWS reserves managed connector names); re-registering an existing custom type updates its description, matching AWS's idempotent register semantics.

func (*InMemoryBackend) RegisterSchemaVersion

func (b *InMemoryBackend) RegisterSchemaVersion(
	registryName, schemaName, schemaDefinition string,
) (*SchemaVersion, error)

RegisterSchemaVersion registers a new version of a schema.

func (*InMemoryBackend) RemoveSchemaVersionMetadata

func (b *InMemoryBackend) RemoveSchemaVersionMetadata(schemaVersionID, key string) error

RemoveSchemaVersionMetadata deletes a metadata key from a schema version.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all backend state, returning it to the initial empty state.

func (*InMemoryBackend) ResetJobBookmark

func (b *InMemoryBackend) ResetJobBookmark(jobName string) error

ResetJobBookmark clears the bookmark for a job and returns the post-reset bookmark.

func (*InMemoryBackend) ResetJobBookmarkWithResult

func (b *InMemoryBackend) ResetJobBookmarkWithResult(jobName string) (*JobBookmark, error)

ResetJobBookmarkWithResult atomically clears the bookmark for a job and returns the post-reset bookmark.

func (*InMemoryBackend) Restore

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

Restore loads backend state from a JSON snapshot.

func (*InMemoryBackend) ResumeWorkflowRun

func (b *InMemoryBackend) ResumeWorkflowRun(workflowName, runID string) (string, []string, error)

ResumeWorkflowRun looks up the workflow run and returns its ID along with an empty node-ID list (AWS returns node IDs that were actually resumed).

func (*InMemoryBackend) RunStatement

func (b *InMemoryBackend) RunStatement(sessionID, code string) (*Statement, error)

func (*InMemoryBackend) SFNStartJobRun

func (b *InMemoryBackend) SFNStartJobRun(
	_ context.Context,
	jobName string,
	arguments map[string]string,
) (string, error)

SFNStartJobRun implements the Step Functions Glue StartJobRun service integration.

func (*InMemoryBackend) SearchTables

func (b *InMemoryBackend) SearchTables(searchText string) []*Table

SearchTables returns tables matching a case-insensitive substring of the table name. An empty searchText returns all tables.

func (*InMemoryBackend) Snapshot

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

Snapshot serialises the backend state to JSON.

func (*InMemoryBackend) StartBlueprintRun

func (b *InMemoryBackend) StartBlueprintRun(blueprintName string) (*BlueprintRun, error)

StartBlueprintRun creates a new blueprint run record.

func (*InMemoryBackend) StartColumnStatisticsTaskRun

func (b *InMemoryBackend) StartColumnStatisticsTaskRun(dbName, tableName string) (*ColumnStatisticsTaskRun, error)

StartColumnStatisticsTaskRun starts a column statistics task run.

func (*InMemoryBackend) StartColumnStatisticsTaskRunSchedule

func (b *InMemoryBackend) StartColumnStatisticsTaskRunSchedule(dbName, tableName string) error

StartColumnStatisticsTaskRunSchedule enables the run schedule for a table's column statistics task settings. The settings must already exist (created via CreateColumnStatisticsTaskSettings), matching AWS's requirement that a schedule can only be attached to existing task settings.

func (*InMemoryBackend) StartCrawler

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

StartCrawler sets a crawler's state to RUNNING (requires READY state). A background reconciler transitions the crawler to READY after crawlerTransitionDelay, creating Glue Catalog tables for each configured S3 prefix.

func (*InMemoryBackend) StartCrawlerSchedule

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

StartCrawlerSchedule enables the crawler's schedule.

func (*InMemoryBackend) StartDataQualityRuleRecommendationRun

func (b *InMemoryBackend) StartDataQualityRuleRecommendationRun(s3Path string) (*DQRuleRecommendationRun, error)

StartDataQualityRuleRecommendationRun creates a recommendation run.

func (*InMemoryBackend) StartDataQualityRulesetEvaluationRun

func (b *InMemoryBackend) StartDataQualityRulesetEvaluationRun(
	rulesetNames []string,
) (*DataQualityEvaluationRun, error)

StartDataQualityRulesetEvaluationRun validates the rulesets exist and creates a run.

func (*InMemoryBackend) StartExportLabelsTaskRun

func (b *InMemoryBackend) StartExportLabelsTaskRun(transformID, _ string) (*MLTaskRun, error)

StartExportLabelsTaskRun starts an ML transform export-labels task run.

func (*InMemoryBackend) StartImportLabelsTaskRun

func (b *InMemoryBackend) StartImportLabelsTaskRun(transformID, _ string) (*MLTaskRun, error)

StartImportLabelsTaskRun starts an ML transform import-labels task run.

func (*InMemoryBackend) StartJobRun

func (b *InMemoryBackend) StartJobRun(
	jobName string,
	arguments map[string]string,
) (*JobRun, error)

StartJobRun creates a new job run record for the named job.

func (*InMemoryBackend) StartMLEvaluationTaskRun

func (b *InMemoryBackend) StartMLEvaluationTaskRun(transformID string) (*MLTaskRun, error)

StartMLEvaluationTaskRun starts an ML transform evaluation task run.

func (*InMemoryBackend) StartMLLabelingSetGenerationTaskRun

func (b *InMemoryBackend) StartMLLabelingSetGenerationTaskRun(transformID string) (*MLTaskRun, error)

StartMLLabelingSetGenerationTaskRun starts an ML transform labeling-set generation task run.

func (*InMemoryBackend) StartMaterializedViewRefreshTaskRun

func (b *InMemoryBackend) StartMaterializedViewRefreshTaskRun(
	dbName, tableName string,
) (*MaterializedViewRefreshRun, error)

StartMaterializedViewRefreshTaskRun starts a refresh run.

func (*InMemoryBackend) StartReconciler

func (b *InMemoryBackend) StartReconciler(ctx context.Context)

StartReconciler starts the managed background reconciler that advances Glue job-run and crawler lifecycle transitions. It replaces the previous unmanaged `go b.runReconciler()` (which leaked because nothing called Close) with a single goroutine owning a stop channel and WaitGroup, so it can be cancelled deterministically via ctx or StopReconciler. Calling it while already running is a no-op.

ctx originates from the service framework's background-worker lifecycle, so no context.Background() is introduced here.

func (*InMemoryBackend) StartTrigger

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

StartTrigger activates a Glue trigger. Per AWS docs (about-triggers.html), on-demand triggers never enter the ACTIVATED state — they always remain CREATED — and firing one immediately runs its actions (job runs / crawler runs) rather than switching to a long-lived "active" monitoring state the way SCHEDULED/CONDITIONAL/ EVENT triggers do.

func (*InMemoryBackend) StartWorkflowRun

func (b *InMemoryBackend) StartWorkflowRun(name string) (*WorkflowRun, error)

StartWorkflowRun creates a new workflow run record.

func (*InMemoryBackend) StopColumnStatisticsTaskRun

func (b *InMemoryBackend) StopColumnStatisticsTaskRun(runID string) error

StopColumnStatisticsTaskRun stops a task run.

func (*InMemoryBackend) StopColumnStatisticsTaskRunSchedule

func (b *InMemoryBackend) StopColumnStatisticsTaskRunSchedule(dbName, tableName string) error

StopColumnStatisticsTaskRunSchedule disables the run schedule for a table's column statistics task settings.

func (*InMemoryBackend) StopCrawler

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

StopCrawler sets a crawler's state to STOPPING (requires RUNNING state).

func (*InMemoryBackend) StopCrawlerSchedule

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

StopCrawlerSchedule disables the crawler's schedule.

func (*InMemoryBackend) StopMaterializedViewRefreshTaskRun

func (b *InMemoryBackend) StopMaterializedViewRefreshTaskRun(taskRunID string) error

StopMaterializedViewRefreshTaskRun stops a refresh run.

func (*InMemoryBackend) StopReconciler

func (b *InMemoryBackend) StopReconciler()

StopReconciler signals the reconciler to stop and blocks until the goroutine has exited, guaranteeing no leaked goroutine survives shutdown. It is idempotent and safe to call even when the reconciler was never started.

func (*InMemoryBackend) StopSession

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

func (*InMemoryBackend) StopTrigger

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

StopTrigger deactivates a Glue trigger. On-demand triggers never enter the DEACTIVATED state (AWS: they always remain CREATED), so StopTrigger is a no-op for them beyond existence-checking.

func (*InMemoryBackend) StopWorkflowRun

func (b *InMemoryBackend) StopWorkflowRun(workflowName, runID string) error

func (*InMemoryBackend) TagResource

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

TagResource adds tags to a resource by ARN.

func (*InMemoryBackend) UntagResource

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

UntagResource removes tags from a resource by ARN.

func (*InMemoryBackend) UpdateBlueprint

func (b *InMemoryBackend) UpdateBlueprint(name string) (*Blueprint, error)

UpdateBlueprint updates an existing blueprint.

func (*InMemoryBackend) UpdateCatalog

func (b *InMemoryBackend) UpdateCatalog(
	catalogID, description string,
	params map[string]string,
) error

func (*InMemoryBackend) UpdateClassifier

func (b *InMemoryBackend) UpdateClassifier(c Classifier) error

UpdateClassifier updates an existing Glue classifier.

func (*InMemoryBackend) UpdateColumnStatisticsForPartition

func (b *InMemoryBackend) UpdateColumnStatisticsForPartition(
	dbName, tableName string,
	partitionValues []string,
	stats []*ColumnStatistics,
) error

func (*InMemoryBackend) UpdateColumnStatisticsForTable

func (b *InMemoryBackend) UpdateColumnStatisticsForTable(
	dbName, tableName string,
	stats []*ColumnStatistics,
) error

func (*InMemoryBackend) UpdateColumnStatisticsTaskSettings

func (b *InMemoryBackend) UpdateColumnStatisticsTaskSettings(
	dbName, tableName, roleArn string,
) error

UpdateColumnStatisticsTaskSettings updates task settings.

func (*InMemoryBackend) UpdateConnection

func (b *InMemoryBackend) UpdateConnection(name string, connType string, props map[string]string) error

UpdateConnection updates an existing connection's type and properties.

func (*InMemoryBackend) UpdateCrawler

func (b *InMemoryBackend) UpdateCrawler(name, role, dbName string, targets CrawlerTarget) error

UpdateCrawler updates an existing Glue crawler.

func (*InMemoryBackend) UpdateCrawlerSchedule

func (b *InMemoryBackend) UpdateCrawlerSchedule(name, scheduleExpression string) error

UpdateCrawlerSchedule updates the schedule expression on a crawler.

func (*InMemoryBackend) UpdateCrawlerWithOptions

func (b *InMemoryBackend) UpdateCrawlerWithOptions(
	name, role, dbName string,
	targets CrawlerTarget,
	opts CrawlerOptions,
) error

UpdateCrawlerWithOptions is UpdateCrawler plus the optional settings AWS's UpdateCrawlerRequest supports (Schedule/Classifiers/Configuration/ TablePrefix/Description). Unset (zero-value) CrawlerOptions fields leave the corresponding crawler field unchanged, matching AWS's partial-update semantics for UpdateCrawler.

func (*InMemoryBackend) UpdateDataQualityRuleset

func (b *InMemoryBackend) UpdateDataQualityRuleset(name, ruleset string) error

UpdateDataQualityRuleset updates the ruleset expression for a named ruleset.

func (*InMemoryBackend) UpdateDatabase

func (b *InMemoryBackend) UpdateDatabase(name string, input DatabaseInput) error

UpdateDatabase updates an existing Glue database.

func (*InMemoryBackend) UpdateDevEndpoint

func (b *InMemoryBackend) UpdateDevEndpoint(name string, args map[string]string) error

func (*InMemoryBackend) UpdateGlueIdentityCenterConfiguration

func (b *InMemoryBackend) UpdateGlueIdentityCenterConfiguration(instanceARN string) error

UpdateGlueIdentityCenterConfiguration updates the configuration.

func (*InMemoryBackend) UpdateIntegrationResourceProperty

func (b *InMemoryBackend) UpdateIntegrationResourceProperty(
	resourceArn string,
	sourceProps, targetProps map[string]string,
) (*IntegrationResourceProperty, error)

UpdateIntegrationResourceProperty updates a previously created resource property.

func (*InMemoryBackend) UpdateIntegrationTableProperties

func (b *InMemoryBackend) UpdateIntegrationTableProperties(
	resourceArn, tableName string,
	sourceConfig, targetConfig map[string]any,
) error

UpdateIntegrationTableProperties updates a previously created table property.

func (*InMemoryBackend) UpdateJob

func (b *InMemoryBackend) UpdateJob(name string, input Job) error

UpdateJob updates an existing Glue job.

func (*InMemoryBackend) UpdateJobFromSourceControl

func (b *InMemoryBackend) UpdateJobFromSourceControl(jobName string, details SourceControlDetails) error

UpdateJobFromSourceControl synchronizes a job definition from its linked remote repository. The emulator has no real repository to pull from, so it records the sync linkage against the job as real, queryable state.

func (*InMemoryBackend) UpdateMLTransform

func (b *InMemoryBackend) UpdateMLTransform(id string, update MLTransform) error

func (*InMemoryBackend) UpdatePartition

func (b *InMemoryBackend) UpdatePartition(
	dbName, tableName string,
	partitionValues []string,
	input PartitionInput,
) error

UpdatePartition updates an existing partition's storage descriptor and optionally renames it.

func (*InMemoryBackend) UpdateRegistry

func (b *InMemoryBackend) UpdateRegistry(name, description string) error

UpdateRegistry updates a registry's description.

func (*InMemoryBackend) UpdateSchema

func (b *InMemoryBackend) UpdateSchema(
	registryName, schemaName, compatibility, description string,
) error

UpdateSchema updates a schema's compatibility and description.

func (*InMemoryBackend) UpdateSourceControlFromJob

func (b *InMemoryBackend) UpdateSourceControlFromJob(jobName string, details SourceControlDetails) error

UpdateSourceControlFromJob pushes a job's current definition to its linked remote repository. As with UpdateJobFromSourceControl, the emulator has no real repository, so it records the same sync linkage against the job.

func (*InMemoryBackend) UpdateTable

func (b *InMemoryBackend) UpdateTable(dbName string, input TableInput) error

UpdateTable updates an existing Glue table.

func (*InMemoryBackend) UpdateTableOptimizer

func (b *InMemoryBackend) UpdateTableOptimizer(
	dbName, tableName, optimizerType string,
	config TableOptimizerConfiguration,
) error

func (*InMemoryBackend) UpdateTrigger

func (b *InMemoryBackend) UpdateTrigger(name string, update Trigger) error

UpdateTrigger updates an existing Glue trigger.

func (*InMemoryBackend) UpdateUsageProfile

func (b *InMemoryBackend) UpdateUsageProfile(name, description string) (*UsageProfile, error)

UpdateUsageProfile updates a usage profile.

func (*InMemoryBackend) UpdateUserDefinedFunction

func (b *InMemoryBackend) UpdateUserDefinedFunction(
	dbName, name string,
	input UserDefinedFunction,
) error

func (*InMemoryBackend) UpdateWorkflow

func (b *InMemoryBackend) UpdateWorkflow(name string, update Workflow) error

UpdateWorkflow updates an existing Glue workflow.

type Integration

type Integration struct {
	CreatedAt       time.Time         `json:"CreateTime"`
	Tags            map[string]string `json:"Tags,omitempty"`
	IntegrationName string            `json:"IntegrationName"`
	Status          string            `json:"Status"`
}

Integration represents a Glue integration.

type IntegrationResourceProperty

type IntegrationResourceProperty struct {
	CreatedAt        time.Time         `json:"CreateTime"`
	SourceProperties map[string]string `json:"SourceProperties,omitempty"`
	TargetProperties map[string]string `json:"TargetProperties,omitempty"`
	ResourceArn      string            `json:"ResourceArn"`
}

IntegrationResourceProperty stores resource-level properties for a Zero-ETL integration.

type IntegrationTableProperties

type IntegrationTableProperties struct {
	SourceTableConfig map[string]any `json:"SourceTableConfig,omitempty"`
	TargetTableConfig map[string]any `json:"TargetTableConfig,omitempty"`
	ResourceArn       string         `json:"ResourceArn"`
	TableName         string         `json:"TableName"`
}

IntegrationTableProperties stores table-level properties for a Zero-ETL integration.

type JDBCTarget

type JDBCTarget struct {
	ConnectionName string   `json:"ConnectionName,omitempty"`
	Path           string   `json:"Path,omitempty"`
	Exclusions     []string `json:"Exclusions,omitempty"`
}

JDBCTarget is a JDBC connection/path pair for a crawler, mirroring aws-sdk-go-v2/service/glue/types.JdbcTarget.

type JSONClassifier

type JSONClassifier struct {
	Name     string `json:"Name"`
	JSONPath string `json:"JsonPath,omitempty"`
}

JSONClassifier is a JSON-based classifier.

type Job

type Job struct {
	SourceControlDetails *SourceControlDetails `json:"SourceControlDetails,omitempty"`
	Tags                 map[string]string     `json:"-"`
	DefaultArguments     map[string]string     `json:"DefaultArguments,omitempty"`
	Command              JobCommand            `json:"Command,omitzero"`
	WorkerType           string                `json:"WorkerType,omitempty"`
	Role                 string                `json:"Role,omitempty"`
	GlueVersion          string                `json:"GlueVersion,omitempty"`
	Name                 string                `json:"Name"`
	ARN                  string                `json:"Arn,omitempty"`
	Description          string                `json:"Description,omitempty"`
	Connections          ConnectionsList       `json:"Connections,omitzero"`
	NotificationProperty NotificationProperty  `json:"NotificationProperty,omitzero"`
	NumberOfWorkers      int                   `json:"NumberOfWorkers,omitempty"`
	MaxRetries           int                   `json:"MaxRetries,omitempty"`
	Timeout              int                   `json:"Timeout,omitempty"`
	// MaxCapacity is the DPU capacity for jobs that use it instead of
	// WorkerType+NumberOfWorkers (e.g. Python shell jobs, or Spark jobs on
	// Glue versions that predate worker-type based capacity). AWS rejects a
	// request that sets both MaxCapacity and WorkerType/NumberOfWorkers.
	MaxCapacity       float64           `json:"MaxCapacity,omitempty"`
	ExecutionProperty ExecutionProperty `json:"ExecutionProperty,omitzero"`
	CreatedOn         float64           `json:"CreatedOn,omitempty"`
	LastModifiedOn    float64           `json:"LastModifiedOn,omitempty"`
}

Job represents a Glue job.

type JobBookmark

type JobBookmark struct {
	JobName   string `json:"JobName"`
	Run       string `json:"Run,omitempty"`
	ActiveRun string `json:"ActiveRun,omitempty"`
	Version   int    `json:"Version"`
	Attempt   int    `json:"Attempt,omitempty"`
}

JobBookmark holds the bookmark state for a job run.

type JobBookmarksEncryption

type JobBookmarksEncryption struct {
	JobBookmarksEncryptionMode string `json:"JobBookmarksEncryptionMode,omitempty"`
	KMSKeyARN                  string `json:"KmsKeyArn,omitempty"`
}

JobBookmarksEncryption holds job bookmarks encryption config.

type JobCommand

type JobCommand struct {
	Name           string `json:"Name,omitempty"`
	ScriptLocation string `json:"ScriptLocation,omitempty"`
	PythonVersion  string `json:"PythonVersion,omitempty"`
}

JobCommand holds the command for a Glue job.

type JobRun

type JobRun struct {
	Arguments       map[string]string `json:"Arguments,omitempty"`
	ID              string            `json:"Id"`
	JobName         string            `json:"JobName"`
	JobRunState     string            `json:"JobRunState"`
	ErrorMessage    string            `json:"ErrorMessage,omitempty"`
	WorkerType      string            `json:"WorkerType,omitempty"`
	GlueVersion     string            `json:"GlueVersion,omitempty"`
	StartedOn       float64           `json:"StartedOn,omitempty"`
	CompletedOn     float64           `json:"CompletedOn,omitempty"`
	MaxCapacity     float64           `json:"MaxCapacity,omitempty"`
	ExecutionTime   int               `json:"ExecutionTime,omitempty"`
	NumberOfWorkers int               `json:"NumberOfWorkers,omitempty"`
	Timeout         int               `json:"Timeout,omitempty"`
}

JobRun represents a single execution of a Glue job.

type MLTaskRun

type MLTaskRun struct {
	Properties    map[string]string `json:"Properties,omitempty"`
	TransformID   string            `json:"TransformId"`
	TaskRunID     string            `json:"TaskRunId"`
	TaskType      string            `json:"TaskType"`
	Status        string            `json:"Status"`
	ErrorString   string            `json:"ErrorString,omitempty"`
	LogGroupName  string            `json:"LogGroupName,omitempty"`
	StartedOn     float64           `json:"StartedOn,omitempty"`
	CompletedOn   float64           `json:"CompletedOn,omitempty"`
	ExecutionTime int               `json:"ExecutionTime,omitempty"`
}

MLTaskRun represents a single ML transform task run.

type MLTaskType

type MLTaskType string

MLTaskType is the category of an ML transform task run.

type MLTransform

type MLTransform struct {
	Parameters        MLTransformParameter `json:"Parameters,omitzero"`
	TransformID       string               `json:"TransformId"`
	Name              string               `json:"Name"`
	Description       string               `json:"Description,omitempty"`
	Role              string               `json:"Role,omitempty"`
	GlueVersion       string               `json:"GlueVersion,omitempty"`
	WorkerType        string               `json:"WorkerType,omitempty"`
	Status            string               `json:"Status"`
	InputRecordTables []GlueTable          `json:"InputRecordTables,omitempty"`
	MaxCapacity       float64              `json:"MaxCapacity,omitempty"`
	CreatedOn         float64              `json:"CreatedOn,omitempty"`
	LastModifiedOn    float64              `json:"LastModifiedOn,omitempty"`
	NumberOfWorkers   int32                `json:"NumberOfWorkers,omitempty"`
}

MLTransform represents an AWS Glue ML transform.

type MLTransformParameter

type MLTransformParameter struct {
	FindMatchesParameters any    `json:"FindMatchesParameters,omitempty"`
	TransformType         string `json:"TransformType,omitempty"`
}

MLTransformParameter holds transform hyperparameters.

type MappingEntry

type MappingEntry struct {
	SourceType  string `json:"SourceType"`
	SourcePath  string `json:"SourcePath"`
	SourceTable string `json:"SourceTable"`
	TargetType  string `json:"TargetType"`
	TargetPath  string `json:"TargetPath"`
	TargetTable string `json:"TargetTable"`
}

MappingEntry describes a single source-to-target column mapping for GetPlan.

type MaterializedViewRefreshRun

type MaterializedViewRefreshRun struct {
	StartedOn    time.Time `json:"StartedOn"`
	DatabaseName string    `json:"DatabaseName"`
	TableName    string    `json:"TableName"`
	TaskRunID    string    `json:"TaskRunId"`
	Status       string    `json:"Status"`
}

MaterializedViewRefreshRun represents a materialized view refresh task run.

type NotificationProperty

type NotificationProperty struct {
	NotifyDelayAfter int `json:"NotifyDelayAfter,omitempty"`
}

NotificationProperty specifies the delay, in minutes, after which a job run notification is sent (JobRun.NotificationProperty / Job.NotificationProperty).

type Order

type Order struct {
	Column    string `json:"Column"`
	SortOrder int    `json:"SortOrder"`
}

Order specifies the sort order of a column, mirroring aws-sdk-go-v2/service/glue/types.Order.

type Partition

type Partition struct {
	Parameters        map[string]string `json:"Parameters,omitempty"`
	DatabaseName      string            `json:"DatabaseName"`
	TableName         string            `json:"TableName"`
	CatalogID         string            `json:"CatalogId,omitempty"`
	Values            []string          `json:"Values"`
	StorageDescriptor StorageDescriptor `json:"StorageDescriptor,omitzero"`
	CreationTime      float64           `json:"CreationTime,omitempty"`
}

Partition represents a Glue table partition.

type PartitionError

type PartitionError struct {
	ErrorDetail     ErrorDetail `json:"ErrorDetail"`
	PartitionValues []string    `json:"PartitionValues"`
}

PartitionError represents an error for a single partition operation.

type PartitionIndex

type PartitionIndex struct {
	IndexName   string   `json:"IndexName"`
	IndexStatus string   `json:"IndexStatus"`
	Keys        []string `json:"Keys"`
}

PartitionIndex describes an index over table partition keys.

type PartitionInput

type PartitionInput struct {
	Parameters        map[string]string `json:"Parameters,omitempty"`
	Values            []string          `json:"Values"`
	StorageDescriptor StorageDescriptor `json:"StorageDescriptor,omitzero"`
}

PartitionInput is the input for creating a partition.

type PartitionValueList

type PartitionValueList struct {
	Values []string `json:"Values"`
}

PartitionValueList identifies a partition by its values.

type Provider

type Provider struct{}

Provider implements service.Provider for Glue.

func (*Provider) Init

Init initializes the Glue backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type Registry

type Registry struct {
	Tags        map[string]string `json:"Tags,omitempty"`
	Name        string            `json:"RegistryName"`
	ARN         string            `json:"RegistryArn"`
	Description string            `json:"Description,omitempty"`
	Status      string            `json:"Status"`
	CreatedTime float64           `json:"CreatedTime,omitempty"`
	UpdatedTime float64           `json:"UpdatedTime,omitempty"`
}

Registry represents a Glue Schema Registry.

type ResourceURI

type ResourceURI struct {
	ResourceType string `json:"ResourceType,omitempty"`
	URI          string `json:"Uri,omitempty"`
}

ResourceURI holds a URI for a UDF resource.

type S3EncryptionEntry

type S3EncryptionEntry struct {
	S3EncryptionMode string `json:"S3EncryptionMode,omitempty"`
	KMSKeyARN        string `json:"KmsKeyArn,omitempty"`
}

S3EncryptionEntry holds per-S3-bucket encryption config.

type S3Target

type S3Target struct {
	Path       string   `json:"Path,omitempty"`
	Exclusions []string `json:"Exclusions,omitempty"`
}

S3Target is an S3 path for a crawler.

type Schema

type Schema struct {
	Tags                map[string]string `json:"Tags,omitempty"`
	RegistryName        string            `json:"RegistryName"`
	SchemaName          string            `json:"SchemaName"`
	SchemaARN           string            `json:"SchemaArn"`
	RegistryARN         string            `json:"RegistryArn"`
	DataFormat          string            `json:"DataFormat"`
	Compatibility       string            `json:"Compatibility"`
	Description         string            `json:"Description,omitempty"`
	SchemaStatus        string            `json:"SchemaStatus"`
	CreatedTime         float64           `json:"CreatedTime,omitempty"`
	UpdatedTime         float64           `json:"UpdatedTime,omitempty"`
	LatestSchemaVersion int64             `json:"LatestSchemaVersion"`
	NextSchemaVersion   int64             `json:"NextSchemaVersion"`
	CheckpointVersion   int64             `json:"SchemaCheckpoint"`
}

Schema represents a Glue Schema Registry schema.

type SchemaVersion

type SchemaVersion struct {
	SchemaVersionID  string  `json:"SchemaVersionId"`
	SchemaARN        string  `json:"SchemaArn"`
	SchemaDefinition string  `json:"SchemaDefinition,omitempty"`
	Status           string  `json:"Status"`
	DataFormat       string  `json:"DataFormat,omitempty"`
	VersionNumber    int64   `json:"VersionNumber"`
	CreatedTime      float64 `json:"CreatedTime,omitempty"`
}

SchemaVersion represents a single version of a schema.

type SecurityConfiguration

type SecurityConfiguration struct {
	Name                    string                  `json:"Name"`
	EncryptionConfiguration EncryptionConfiguration `json:"EncryptionConfiguration"`
	CreatedTimeStamp        float64                 `json:"CreatedTimeStamp,omitempty"`
}

SecurityConfiguration represents a Glue security configuration.

type SerDeInfo

type SerDeInfo struct {
	Parameters           map[string]string `json:"Parameters,omitempty"`
	Name                 string            `json:"Name,omitempty"`
	SerializationLibrary string            `json:"SerializationLibrary,omitempty"`
}

SerDeInfo holds the serialization/deserialization information for a StorageDescriptor, mirroring aws-sdk-go-v2/service/glue/types.SerDeInfo.

type Session

type Session struct {
	DefaultArguments map[string]string `json:"DefaultArguments,omitempty"`
	Command          SessionCommand    `json:"Command,omitzero"`
	SessionID        string            `json:"Id"`
	Role             string            `json:"Role,omitempty"`
	Status           string            `json:"Status"`
	Description      string            `json:"Description,omitempty"`
	CreatedOn        float64           `json:"CreatedOn,omitempty"`
	MaxCapacity      float64           `json:"MaxCapacity,omitempty"`
	Timeout          int32             `json:"Timeout,omitempty"`
}

Session represents a Glue interactive session.

type SessionCommand

type SessionCommand struct {
	Name          string `json:"Name,omitempty"`
	PythonVersion string `json:"PythonVersion,omitempty"`
}

SessionCommand holds the command info for a Glue interactive session.

type Snapshottable

type Snapshottable interface {
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error
}

Snapshottable is an optional interface that a StorageBackend may implement to support persistence via Snapshot/Restore.

type SourceControlDetails

type SourceControlDetails struct {
	AuthStrategy string `json:"AuthStrategy,omitempty"`
	AuthToken    string `json:"AuthToken,omitempty"`
	Branch       string `json:"Branch,omitempty"`
	Folder       string `json:"Folder,omitempty"`
	LastCommitID string `json:"LastCommitId,omitempty"`
	Owner        string `json:"Owner,omitempty"`
	Provider     string `json:"Provider,omitempty"`
	Repository   string `json:"Repository,omitempty"`
}

SourceControlDetails records the remote-repository link for a job synchronized via UpdateJobFromSourceControl / UpdateSourceControlFromJob.

type Statement

type Statement struct {
	Output      any     `json:"Output,omitempty"`
	SessionId   string  `json:"SessionId,omitempty"` //nolint:revive,staticcheck // AWS API naming
	Code        string  `json:"Code,omitempty"`
	State       string  `json:"State"`
	Progress    float64 `json:"Progress,omitempty"`
	StartedOn   float64 `json:"StartedOn,omitempty"`
	CompletedOn float64 `json:"CompletedOn,omitempty"`
	Id          int32   `json:"Id"` //nolint:revive,staticcheck // AWS API uses Id not ID
}

Statement represents a statement run within a Glue session.

type StatisticAnnotation

type StatisticAnnotation struct {
	ProfileID      string  `json:"ProfileId"`
	StatisticID    string  `json:"StatisticId,omitempty"`
	Inclusion      string  `json:"Inclusion,omitempty"`
	RecordedOn     float64 `json:"RecordedOn,omitempty"`
	LastModifiedOn float64 `json:"LastModifiedOn,omitempty"`
}

StatisticAnnotation records an inclusion annotation applied via PutDataQualityProfileAnnotation (profile-wide, StatisticID == "") or BatchPutDataQualityStatisticAnnotation (per-statistic).

type StorageBackend

type StorageBackend interface {
	// Region returns the backend region.
	Region() string
	// AccountID returns the backend account ID.
	AccountID() string
	// Reset clears all backend state, returning it to the initial empty state.
	Reset()

	// Managed reconciler lifecycle. StartReconciler is invoked by the service
	// framework's BackgroundWorker hook; StopReconciler by its Shutdowner hook.
	StartReconciler(ctx context.Context)
	StopReconciler()

	// Connection-type registry operations.
	RegisterConnectionType(name, description string) (*ConnectionTypeInfo, error)
	DeleteConnectionType(name string) error
	ListConnectionTypes() []*ConnectionTypeInfo
	DescribeConnectionType(name string) (*ConnectionTypeInfo, error)

	// Connector entity metadata/data operations.
	DescribeEntity(connectionName, entityName string) ([]EntityField, error)
	GetEntityRecords(connectionName, entityName string, limit int, nextToken string) ([]map[string]any, string, error)
	ListEntities(connectionName string) ([]EntityDescriptor, error)

	// Database operations.
	CreateDatabase(input DatabaseInput, tags map[string]string) (*Database, error)
	GetDatabase(name string) (*Database, error)
	GetDatabases() []*Database
	UpdateDatabase(name string, input DatabaseInput) error
	DeleteDatabase(name string) error

	// Table operations.
	CreateTable(dbName string, input TableInput) (*Table, error)
	GetTable(dbName, tableName string) (*Table, error)
	GetTables(dbName string) ([]*Table, error)
	UpdateTable(dbName string, input TableInput) error
	DeleteTable(dbName, tableName string) error

	// Crawler operations.
	CreateCrawler(
		name, role, dbName string,
		targets CrawlerTarget,
		tags map[string]string,
	) (*Crawler, error)
	CreateCrawlerWithOptions(
		name, role, dbName string,
		targets CrawlerTarget,
		tags map[string]string,
		opts CrawlerOptions,
	) (*Crawler, error)
	GetCrawler(name string) (*Crawler, error)
	GetCrawlers() []*Crawler
	ListCrawlers() []string
	UpdateCrawler(name, role, dbName string, targets CrawlerTarget) error
	UpdateCrawlerWithOptions(name, role, dbName string, targets CrawlerTarget, opts CrawlerOptions) error
	DeleteCrawler(name string) error

	// Job operations.
	CreateJob(input Job) (*Job, error)
	GetJob(name string) (*Job, error)
	GetJobs() []*Job
	UpdateJob(name string, input Job) error
	DeleteJob(name string) error
	UpdateJobFromSourceControl(jobName string, details SourceControlDetails) error
	UpdateSourceControlFromJob(jobName string, details SourceControlDetails) error

	// Tag operations.
	TagResource(resourceARN string, tags map[string]string) error
	UntagResource(resourceARN string, tagKeys []string) error
	GetTags(resourceARN string) (map[string]string, error)

	// Partition operations.
	BatchCreatePartition(
		dbName, tableName string,
		inputs []PartitionInput,
	) ([]*Partition, []PartitionError)
	BatchDeletePartition(dbName, tableName string, values []PartitionValueList) []PartitionError
	BatchDeleteTableVersion(dbName, tableName string, versionIDs []string) []TableVersionError

	// Single partition operations.
	GetPartition(dbName, tableName string, values []string) (*Partition, error)
	GetPartitions(dbName, tableName string) ([]*Partition, error)
	UpdatePartition(dbName, tableName string, partitionValues []string, input PartitionInput) error
	CreatePartitionIndex(dbName, tableName string, input PartitionIndex) error
	DeletePartitionIndex(dbName, tableName, indexName string) error
	GetPartitionIndexes(dbName, tableName string) ([]*PartitionIndex, error)

	// Connection operations.
	CreateConnection(
		name, connType string,
		props map[string]string,
		tags map[string]string,
	) (*Connection, error)
	GetConnection(name string) (*Connection, error)
	GetConnections() []*Connection
	DeleteConnection(name string) error
	UpdateConnection(name string, connType string, props map[string]string) error

	// Batch connection operations.
	BatchDeleteConnection(names []string) ([]string, []ErrorDetail)

	// Batch table operations.
	BatchDeleteTable(dbName string, tableNames []string) []TableError

	// Batch blueprint operations.
	BatchGetBlueprints(names []string) ([]*Blueprint, []string)

	// Batch crawler operations.
	BatchGetCrawlers(names []string) ([]*Crawler, []string)

	// Batch custom entity type operations.
	BatchGetCustomEntityTypes(names []string) ([]*CustomEntityType, []string)

	// Batch data quality operations.
	BatchGetDataQualityResult(resultIDs []string) ([]*DataQualityResult, []ErrorDetail)

	// Batch dev endpoint operations.
	BatchGetDevEndpoints(names []string) ([]*DevEndpoint, []string)

	// Seed helpers (internal use for tests).
	AddConnectionInternal(conn *Connection)
	AddBlueprintInternal(bp *Blueprint)
	AddCustomEntityTypeInternal(cet *CustomEntityType)
	AddDataQualityResultInternal(dqr *DataQualityResult)
	AddDevEndpointInternal(dep *DevEndpoint)
	AddTableVersionInternal(dbName, tableName string, tv *TableVersion)
	AddPartitionInternal(dbName, tableName string, p *Partition)

	// Job run operations.
	StartJobRun(jobName string, arguments map[string]string) (*JobRun, error)
	GetJobRun(jobName, runID string) (*JobRun, error)
	GetJobRuns(jobName string) ([]*JobRun, error)
	BatchStopJobRun(jobName string, runIDs []string) []BatchStopJobRunError
	GetJobBookmark(jobName string) (*JobBookmark, error)
	ResetJobBookmark(jobName string) error
	ResetJobBookmarkWithResult(jobName string) (*JobBookmark, error)

	// Crawler scheduling operations.
	StartCrawler(name string) error
	StopCrawler(name string) error
	UpdateCrawlerSchedule(name, scheduleExpression string) error
	StartCrawlerSchedule(name string) error
	StopCrawlerSchedule(name string) error
	ListCrawls(crawlerName string) ([]*CrawlHistoryEntry, error)

	// Data quality ruleset operations.
	CreateDataQualityRuleset(
		name, ruleset string,
		tags map[string]string,
	) (*DataQualityRuleset, error)
	GetDataQualityRuleset(name string) (*DataQualityRuleset, error)
	DeleteDataQualityRuleset(name string) error
	UpdateDataQualityRuleset(name, ruleset string) error
	ListDataQualityRulesets() []*DataQualityRuleset
	StartDataQualityRulesetEvaluationRun(rulesetNames []string) (*DataQualityEvaluationRun, error)
	GetDataQualityRulesetEvaluationRun(runID string) (*DataQualityEvaluationRun, error)
	CancelDataQualityRulesetEvaluationRun(runID string) error

	// Seed helpers for new types.
	AddJobRunInternal(run *JobRun)
	AddDataQualityRulesetInternal(r *DataQualityRuleset)
	AddDataQualityEvalRunInternal(run *DataQualityEvaluationRun)

	// Trigger operations.
	CreateTrigger(t Trigger, tags map[string]string) (*Trigger, error)
	GetTrigger(name string) (*Trigger, error)
	GetTriggers() []*Trigger
	BatchGetTriggers(names []string) ([]*Trigger, []string)
	UpdateTrigger(name string, update Trigger) error
	DeleteTrigger(name string) error
	StartTrigger(name string) error
	StopTrigger(name string) error

	// Workflow operations.
	CreateWorkflow(w Workflow, tags map[string]string) (*Workflow, error)
	GetWorkflow(name string) (*Workflow, error)
	GetWorkflows() []string
	BatchGetWorkflows(names []string) ([]*Workflow, []string)
	UpdateWorkflow(name string, update Workflow) error
	DeleteWorkflow(name string) error
	StartWorkflowRun(name string) (*WorkflowRun, error)
	GetWorkflowRun(workflowName, runID string) (*WorkflowRun, error)
	GetWorkflowRuns(workflowName string) ([]*WorkflowRun, error)

	// Classifier operations.
	CreateClassifier(c Classifier) error
	GetClassifier(name string) (*Classifier, error)
	GetClassifiers() []*Classifier
	UpdateClassifier(c Classifier) error
	DeleteClassifier(name string) error

	// DevEndpoint full CRUD.
	CreateDevEndpoint(name string) (*DevEndpoint, error)
	GetDevEndpoint(name string) (*DevEndpoint, error)
	GetAllDevEndpoints() []*DevEndpoint
	DeleteDevEndpoint(name string) error

	// Schema Registry operations.
	CreateRegistry(name, description string, tags map[string]string) (*Registry, error)
	DescribeRegistry(name string) (*Registry, error)
	ListRegistries() []*Registry
	UpdateRegistry(name, description string) error
	DeleteRegistry(name string) error

	// Schema operations.
	CreateSchema(
		registryName, schemaName, dataFormat, compatibility, description string,
		tags map[string]string,
	) (*Schema, error)
	DescribeSchema(registryName, schemaName string) (*Schema, error)
	ListSchemas(registryName string) []*Schema
	UpdateSchema(registryName, schemaName, compatibility, description string) error
	DeleteSchema(registryName, schemaName string) error

	// Schema Version operations.
	RegisterSchemaVersion(registryName, schemaName, schemaDefinition string) (*SchemaVersion, error)
	GetSchemaVersion(registryName, schemaName string, versionNumber int64) (*SchemaVersion, error)
	ListSchemaVersions(registryName, schemaName string) []*SchemaVersion

	// Crawler metrics.
	GetCrawlerMetrics(crawlerNames []string) []*CrawlerMetrics

	// Table version retrieval (read-only; versions are created via CreateTable/UpdateTable).
	GetTableVersions(dbName, tableName string) []*TableVersion
	GetTableVersion(dbName, tableName, versionID string) (*TableVersion, error)

	// SearchTables returns tables matching a case-insensitive substring filter.
	SearchTables(searchText string) []*Table

	// UserDefinedFunction operations.
	CreateUserDefinedFunction(
		dbName string,
		input UserDefinedFunction,
		tags map[string]string,
	) (*UserDefinedFunction, error)
	GetUserDefinedFunction(dbName, name string) (*UserDefinedFunction, error)
	GetUserDefinedFunctions(dbName string) []*UserDefinedFunction
	UpdateUserDefinedFunction(dbName, name string, input UserDefinedFunction) error
	DeleteUserDefinedFunction(dbName, name string) error

	// SecurityConfiguration operations.
	CreateSecurityConfiguration(
		name string,
		enc EncryptionConfiguration,
	) (*SecurityConfiguration, error)
	GetSecurityConfiguration(name string) (*SecurityConfiguration, error)
	DeleteSecurityConfiguration(name string) error
	ListSecurityConfigurations() []*SecurityConfiguration

	// Session operations.
	CreateSession(id, role string, cmd SessionCommand, opts Session) (*Session, error)
	GetSession(id string) (*Session, error)
	ListSessions() []*Session
	DeleteSession(id string) error
	StopSession(id string) error

	// Statement operations.
	RunStatement(sessionID, code string) (*Statement, error)
	GetStatement(sessionID string, statementID int32) (*Statement, error)
	GetStatements(sessionID string) ([]*Statement, error)
	CancelStatement(sessionID string, statementID int32) error

	// TableOptimizer operations.
	CreateTableOptimizer(
		catalogID, dbName, tableName, optimizerType string,
		config TableOptimizerConfiguration,
	) error
	GetTableOptimizer(dbName, tableName, optimizerType string) (*TableOptimizer, error)
	UpdateTableOptimizer(
		dbName, tableName, optimizerType string,
		config TableOptimizerConfiguration,
	) error
	DeleteTableOptimizer(dbName, tableName, optimizerType string) error
	BatchGetTableOptimizer(
		entries []BatchGetTableOptimizerEntry,
	) ([]*TableOptimizer, []BatchGetTableOptimizerError)

	// Column statistics operations.
	UpdateColumnStatisticsForTable(dbName, tableName string, stats []*ColumnStatistics) error
	GetColumnStatisticsForTable(
		dbName, tableName string,
		columnNames []string,
	) ([]*ColumnStatistics, error)
	DeleteColumnStatisticsForTable(dbName, tableName, columnName string) error
	UpdateColumnStatisticsForPartition(
		dbName, tableName string,
		partitionValues []string,
		stats []*ColumnStatistics,
	) error
	GetColumnStatisticsForPartition(
		dbName, tableName string,
		partitionValues []string,
		columnNames []string,
	) ([]*ColumnStatistics, error)
	DeleteColumnStatisticsForPartition(
		dbName, tableName string,
		partitionValues []string,
		columnName string,
	) error

	// Resource policy operations.
	PutResourcePolicy(policy, resourceARN, existsCondition, hashCondition string) (string, error)
	GetResourcePolicy(resourceARN string) (string, string, error)
	DeleteResourcePolicy(resourceARN, policyHash string) error
	ListResourcePolicies() []*resourcePolicyEntry

	// MLTransform operations.
	CreateMLTransform(
		name, description, role string,
		tables []GlueTable,
		params MLTransformParameter,
		tags map[string]string,
	) (*MLTransform, error)
	GetMLTransform(id string) (*MLTransform, error)
	GetMLTransforms() []*MLTransform
	UpdateMLTransform(id string, update MLTransform) error
	DeleteMLTransform(id string) error

	// Catalog operations.
	CreateCatalog(catalogID, name, description string, params map[string]string) error
	GetCatalog(catalogID string) (*CatalogEntry, error)
	GetCatalogs() []*CatalogEntry
	UpdateCatalog(catalogID, description string, params map[string]string) error
	DeleteCatalog(catalogID string) error

	// WorkflowRun extras.
	StopWorkflowRun(workflowName, runID string) error
	PutWorkflowRunProperties(workflowName, runID string, props map[string]string) error

	// Table version deletion.
	DeleteTableVersion(dbName, tableName, versionID string) error

	// DevEndpoint update.
	UpdateDevEndpoint(name string, args map[string]string) error

	// Data catalog encryption settings.
	PutDataCatalogEncryptionSettings(catalogID string, settings DataCatalogEncryptionSettings) error
	GetDataCatalogEncryptionSettings(catalogID string) (*DataCatalogEncryptionSettings, error)

	// Blueprint CRUD (batch 2).
	CreateBlueprint(name string) error
	DeleteBlueprint(name string) error
	UpdateBlueprint(name string) (*Blueprint, error)
	ListBlueprints() []string

	// BlueprintRun operations.
	StartBlueprintRun(blueprintName string) (*BlueprintRun, error)
	GetBlueprintRun(blueprintName, runID string) (*BlueprintRun, error)
	GetBlueprintRuns(blueprintName string) []*BlueprintRun

	// UsageProfile operations.
	CreateUsageProfile(name, description string, tags map[string]string) (*UsageProfile, error)
	GetUsageProfile(name string) (*UsageProfile, error)
	DeleteUsageProfile(name string) error
	ListUsageProfiles() []*UsageProfile
	UpdateUsageProfile(name, description string) (*UsageProfile, error)

	// CustomEntityType individual CRUD.
	CreateCustomEntityType(
		name, regexString string,
		contextWords []string,
	) (*CustomEntityType, error)
	GetCustomEntityType(name string) (*CustomEntityType, error)
	DeleteCustomEntityType(name string) error
	ListCustomEntityTypes() []*CustomEntityType

	// DataQuality recommendation runs.
	StartDataQualityRuleRecommendationRun(s3Path string) (*DQRuleRecommendationRun, error)
	GetDataQualityRuleRecommendationRun(runID string) (*DQRuleRecommendationRun, error)
	CancelDataQualityRuleRecommendationRun(runID string) error
	ListDataQualityRuleRecommendationRuns() []*DQRuleRecommendationRun

	// ColumnStatisticsTask operations.
	CreateColumnStatisticsTaskSettings(
		dbName, tableName, roleArn string,
		columns []string,
	) (*ColumnStatisticsTaskSettings, error)
	GetColumnStatisticsTaskSettings(dbName, tableName string) (*ColumnStatisticsTaskSettings, error)
	UpdateColumnStatisticsTaskSettings(dbName, tableName, roleArn string) error
	DeleteColumnStatisticsTaskSettings(dbName, tableName string) error
	StartColumnStatisticsTaskRunSchedule(dbName, tableName string) error
	StopColumnStatisticsTaskRunSchedule(dbName, tableName string) error
	StartColumnStatisticsTaskRun(dbName, tableName string) (*ColumnStatisticsTaskRun, error)
	StopColumnStatisticsTaskRun(runID string) error
	GetColumnStatisticsTaskRun(runID string) (*ColumnStatisticsTaskRun, error)
	GetColumnStatisticsTaskRuns() []*ColumnStatisticsTaskRun
	ListColumnStatisticsTaskRuns() []*ColumnStatisticsTaskRun

	// MaterializedView refresh operations.
	StartMaterializedViewRefreshTaskRun(
		dbName, tableName string,
	) (*MaterializedViewRefreshRun, error)
	StopMaterializedViewRefreshTaskRun(taskRunID string) error
	GetMaterializedViewRefreshTaskRun(taskRunID string) (*MaterializedViewRefreshRun, error)
	ListMaterializedViewRefreshTaskRuns() []*MaterializedViewRefreshRun

	// Integration operations.
	CreateIntegration(name string, tags map[string]string) (*Integration, error)
	DeleteIntegration(name string) error
	ListIntegrations() []*Integration
	ModifyIntegration(name string) error
	CreateIntegrationResourceProperty(
		resourceArn string,
		sourceProps, targetProps map[string]string,
	) (*IntegrationResourceProperty, error)
	GetIntegrationResourceProperty(resourceArn string) (*IntegrationResourceProperty, error)
	UpdateIntegrationResourceProperty(
		resourceArn string,
		sourceProps, targetProps map[string]string,
	) (*IntegrationResourceProperty, error)
	ListIntegrationResourceProperties() []*IntegrationResourceProperty
	CreateIntegrationTableProperties(
		resourceArn, tableName string,
		sourceConfig, targetConfig map[string]any,
	) error
	GetIntegrationTableProperties(
		resourceArn, tableName string,
	) (*IntegrationTableProperties, error)
	UpdateIntegrationTableProperties(
		resourceArn, tableName string,
		sourceConfig, targetConfig map[string]any,
	) error

	// GlueIdentityCenter operations.
	CreateGlueIdentityCenterConfiguration(instanceARN string) error
	GetGlueIdentityCenterConfiguration() (*IdentityCenterConfig, error)
	UpdateGlueIdentityCenterConfiguration(instanceARN string) error
	DeleteGlueIdentityCenterConfiguration() error

	// ML transform task run operations.
	StartMLEvaluationTaskRun(transformID string) (*MLTaskRun, error)
	StartMLLabelingSetGenerationTaskRun(transformID string) (*MLTaskRun, error)
	StartExportLabelsTaskRun(transformID, outputPath string) (*MLTaskRun, error)
	StartImportLabelsTaskRun(transformID, inputPath string) (*MLTaskRun, error)
	GetMLTaskRun(transformID, taskRunID string) (*MLTaskRun, error)
	GetMLTaskRuns(transformID string) ([]*MLTaskRun, error)
	CancelMLTaskRun(transformID, taskRunID string) error

	// DataQuality listing and model operations.
	ListDataQualityEvaluationRuns() []*DataQualityEvaluationRun
	ListDataQualityResults() []*DataQualityResult
	PutDataQualityStatisticAnnotation(profileID, statisticID, inclusion string)
	ListDataQualityStatisticAnnotations(profileID, statisticID string) []*StatisticAnnotation

	// CatalogImport operations.
	ImportCatalogToGlue(catalogID string) error
	GetCatalogImportStatus(catalogID string) *CatalogImportStatus

	// Schema version metadata operations.
	PutSchemaVersionMetadata(schemaVersionID, key, value string) error
	QuerySchemaVersionMetadata(schemaVersionID string) map[string]string
	RemoveSchemaVersionMetadata(schemaVersionID, key string) error

	// Schema lookup by definition.
	GetSchemaByDefinition(registryName, schemaName, definition string) (*SchemaVersion, error)

	// Schema version diff.
	GetSchemaVersionsDiff(registryName, schemaName string, v1, v2 int64) (string, error)

	// ETL plan generation.
	GetPlan(language string) (string, string)

	// Workflow resume.
	ResumeWorkflowRun(workflowName, runID string) (string, []string, error)

	// Schema version deletion (single version, by number).
	DeleteSchemaVersion(registryName, schemaName string, versionNumber int64) error

	// Integration resource/table property deletion.
	DeleteIntegrationResourceProperty(resourceArn string) error
	DeleteIntegrationTableProperties(resourceArn, tableName string) error
}

StorageBackend defines the interface for all Glue backend operations. InMemoryBackend implements this interface; alternative backends (e.g. test doubles) can implement it too, keeping the Handler backend-agnostic.

type StorageDescriptor

type StorageDescriptor struct {
	SerdeInfo              *SerDeInfo        `json:"SerdeInfo,omitempty"`
	Parameters             map[string]string `json:"Parameters,omitempty"`
	Location               string            `json:"Location,omitempty"`
	InputFormat            string            `json:"InputFormat,omitempty"`
	OutputFormat           string            `json:"OutputFormat,omitempty"`
	Columns                []Column          `json:"Columns,omitempty"`
	BucketColumns          []string          `json:"BucketColumns,omitempty"`
	SortColumns            []Order           `json:"SortColumns,omitempty"`
	NumberOfBuckets        int               `json:"NumberOfBuckets,omitempty"`
	Compressed             bool              `json:"Compressed,omitempty"`
	StoredAsSubDirectories bool              `json:"StoredAsSubDirectories,omitempty"`
}

StorageDescriptor describes the physical storage of a table or partition.

type Table

type Table struct {
	Parameters        map[string]string `json:"Parameters,omitempty"`
	Name              string            `json:"Name"`
	DatabaseName      string            `json:"DatabaseName"`
	CatalogID         string            `json:"CatalogId"`
	Description       string            `json:"Description,omitempty"`
	Owner             string            `json:"Owner,omitempty"`
	TableType         string            `json:"TableType,omitempty"`
	PartitionKeys     []Column          `json:"PartitionKeys,omitempty"`
	StorageDescriptor StorageDescriptor `json:"StorageDescriptor,omitzero"`
	Retention         int               `json:"Retention,omitempty"`
	CreateTime        float64           `json:"CreateTime,omitempty"`
	UpdateTime        float64           `json:"UpdateTime,omitempty"`
}

Table represents a Glue catalog table.

type TableError

type TableError struct {
	TableName   string      `json:"TableName"`
	ErrorDetail ErrorDetail `json:"ErrorDetail"`
}

TableError represents an error for a single table operation.

type TableInput

type TableInput struct {
	Parameters        map[string]string `json:"Parameters,omitempty"`
	Name              string            `json:"Name"`
	Description       string            `json:"Description,omitempty"`
	Owner             string            `json:"Owner,omitempty"`
	TableType         string            `json:"TableType,omitempty"`
	PartitionKeys     []Column          `json:"PartitionKeys,omitempty"`
	StorageDescriptor StorageDescriptor `json:"StorageDescriptor,omitzero"`
	Retention         int               `json:"Retention,omitempty"`
}

TableInput is the input for creating or updating a Glue table.

type TableOptimizer

type TableOptimizer struct {
	LastRun       *TableOptimizerRun          `json:"LastRun,omitempty"`
	CatalogID     string                      `json:"CatalogId,omitempty"`
	DatabaseName  string                      `json:"DatabaseName"`
	TableName     string                      `json:"TableName"`
	Type          string                      `json:"Type"`
	Configuration TableOptimizerConfiguration `json:"Configuration,omitzero"`
}

TableOptimizer represents a single table optimizer resource.

type TableOptimizerConfiguration

type TableOptimizerConfiguration struct {
	RoleARN string `json:"RoleArn,omitempty"`
	Enabled bool   `json:"Enabled"`
}

TableOptimizerConfiguration holds the config for a table optimizer.

type TableOptimizerRun

type TableOptimizerRun struct {
	Metrics   any     `json:"metrics,omitempty"`
	EventType string  `json:"eventType,omitempty"`
	Error     string  `json:"error,omitempty"`
	StartedAt float64 `json:"startTimestamp,omitempty"`
	EndedAt   float64 `json:"endTimestamp,omitempty"`
}

TableOptimizerRun holds a single run record for a table optimizer. The Glue Iceberg table-optimizer sub-API serializes this nested document with lowerCamelCase keys, unlike the rest of the Glue JSON protocol.

type TableVersion

type TableVersion struct {
	Table     *Table `json:"Table,omitempty"`
	VersionID string `json:"VersionId"`
}

TableVersion represents a version of a Glue table.

type TableVersionError

type TableVersionError struct {
	TableName   string      `json:"TableName"`
	VersionID   string      `json:"VersionId"`
	ErrorDetail ErrorDetail `json:"ErrorDetail"`
}

TableVersionError represents an error for a table version operation.

type Trigger

type Trigger struct {
	Tags      map[string]string `json:"-"`
	Predicate *TriggerPredicate `json:"Predicate,omitempty"`
	ARN       string            `json:"Arn,omitempty"`
	Name      string            `json:"Name"`
	Type      string            `json:"Type,omitempty"`
	State     string            `json:"State,omitempty"`
	Schedule  string            `json:"Schedule,omitempty"`
	Actions   []TriggerAction   `json:"Actions,omitempty"`
	// StartOnCreation mirrors CreateTriggerInput.StartOnCreation: when true, a
	// SCHEDULED or CONDITIONAL trigger is activated immediately on creation. It is
	// not part of the Trigger wire shape itself (hence json:"-"), only of the
	// create request, matching the real CreateTriggerInput/Trigger type split.
	StartOnCreation bool `json:"-"`
}

Trigger represents a Glue trigger.

type TriggerAction

type TriggerAction struct {
	Arguments   map[string]string `json:"Arguments,omitempty"`
	JobName     string            `json:"JobName,omitempty"`
	CrawlerName string            `json:"CrawlerName,omitempty"`
}

TriggerAction represents an action for a Glue trigger. An action fires either a job (JobName) or a crawler (CrawlerName) — real AWS triggers support both.

type TriggerCondition

type TriggerCondition struct {
	JobName         string `json:"JobName,omitempty"`
	LogicalOperator string `json:"LogicalOperator,omitempty"`
	State           string `json:"State,omitempty"`
}

TriggerCondition represents a condition within a trigger predicate.

type TriggerPredicate

type TriggerPredicate struct {
	Logical    string             `json:"Logical,omitempty"`
	Conditions []TriggerCondition `json:"Conditions,omitempty"`
}

TriggerPredicate represents a predicate for a conditional trigger.

type UsageProfile

type UsageProfile struct {
	CreatedOn      time.Time         `json:"CreatedOn"`
	LastModifiedOn time.Time         `json:"LastModifiedOn"`
	Tags           map[string]string `json:"Tags,omitempty"`
	Name           string            `json:"Name"`
	Description    string            `json:"Description,omitempty"`
}

UsageProfile represents a Glue usage profile.

type UserDefinedFunction

type UserDefinedFunction struct {
	DatabaseName string        `json:"DatabaseName"`
	FunctionName string        `json:"FunctionName"`
	ClassName    string        `json:"ClassName,omitempty"`
	OwnerName    string        `json:"OwnerName,omitempty"`
	OwnerType    string        `json:"OwnerType,omitempty"`
	FunctionARN  string        `json:"FunctionArn,omitempty"`
	ResourceURIs []ResourceURI `json:"ResourceUris,omitempty"`
	CreateTime   float64       `json:"CreateTime,omitempty"`
}

UserDefinedFunction represents a Glue UDF.

type Workflow

type Workflow struct {
	Tags                 map[string]string `json:"-"`
	DefaultRunProperties map[string]string `json:"DefaultRunProperties,omitempty"`
	Name                 string            `json:"Name"`
	Description          string            `json:"Description,omitempty"`
	ARN                  string            `json:"Arn,omitempty"`
	CreatedOn            float64           `json:"CreatedOn,omitempty"`
	LastModifiedOn       float64           `json:"LastModifiedOn,omitempty"`
}

Workflow represents a Glue workflow.

type WorkflowRun

type WorkflowRun struct {
	Properties   map[string]string `json:"WorkflowRunProperties,omitempty"`
	WorkflowName string            `json:"WorkflowName"`
	RunID        string            `json:"WorkflowRunId"`
	Status       string            `json:"Status"`
	StartedOn    float64           `json:"StartedOn,omitempty"`
	CompletedOn  float64           `json:"CompletedOn,omitempty"`
}

WorkflowRun represents a single run of a Glue workflow.

type XMLClassifier

type XMLClassifier struct {
	Name           string `json:"Name"`
	Classification string `json:"Classification,omitempty"`
	RowTag         string `json:"RowTag,omitempty"`
}

XMLClassifier is an XML-based classifier.

Jump to

Keyboard shortcuts

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