Help us shape the future of Go! Take the 2026 Go Developer Survey

appintegrations

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2026 License: MIT Imports: 23 Imported by: 0

README

Appintegrations

Parity grade: B · SDK aws-sdk-go-v2/service/appintegrations@v1.52.0 · last audited 2026-10-18 (88c2622c4)

Coverage

Metric Value
PARITY entries audited 23 (23 ok)
Feature families 4 (4 ok)
Known gaps 4
Structural gaps (can't be emulated) 1
Deferred items 0
Resource leaks clean
Known gaps
  • DataIntegrationAssociation.LastExecutionStatus: never emitted because no AppFlow execution exists
  • KmsKey: stored as given, not looked up in the KMS emulator
  • CreateDataIntegrationAssociation duplicate: the code for a second association of one DataIntegration is not documented; the emulator uses InvalidRequestException
  • ResourceGroupsTaggingAPI and CloudFormation do not expose or provision AppIntegrations resources
Structural gaps

These do not block an A grade — no implementation could produce real data here because the underlying data source cannot exist in an emulator.

  • No AppFlow data plane: data integrations never pull data, so executions, schedules and file configuration have no effect beyond being stored.

More

Documentation

Overview

Package appintegrations emulates Amazon AppIntegrations: event and data integrations, their associations, and applications.

Index

Constants

This section is empty.

Variables

View Source
var ErrNilAppContext = errors.New("appintegrations: AppContext must not be nil")

ErrNilAppContext is returned by Init when no AppContext is supplied.

Functions

This section is empty.

Types

type Application

type Application struct {
	CreatedTime             awstime.EpochTime        `json:"CreatedTime"`
	LastModifiedTime        awstime.EpochTime        `json:"LastModifiedTime"`
	ApplicationSourceConfig *ApplicationSourceConfig `json:"ApplicationSourceConfig,omitempty"`
	ApplicationConfig       *ApplicationConfig       `json:"ApplicationConfig,omitempty"`
	IframeConfig            *IframeConfig            `json:"IframeConfig,omitempty"`
	AuthConfig              *AuthConfig              `json:"AuthConfig,omitempty"`
	InitializationTimeout   *int32                   `json:"InitializationTimeout,omitempty"`
	Tags                    map[string]string        `json:"Tags,omitempty"`
	Arn                     string                   `json:"Arn"`
	ID                      string                   `json:"Id"`
	Name                    string                   `json:"Name"`
	Namespace               string                   `json:"Namespace"`
	Description             string                   `json:"Description,omitempty"`
	ApplicationType         string                   `json:"ApplicationType"`
	Permissions             []string                 `json:"Permissions,omitempty"`
	Publications            []Publication            `json:"Publications,omitempty"`
	Subscriptions           []Subscription           `json:"Subscriptions,omitempty"`
	IsService               bool                     `json:"IsService"`
}

Application is an AppIntegrations application; the JSON names are the wire names.

type ApplicationAssociation

type ApplicationAssociation struct {
	ApplicationArn            string `json:"ApplicationArn"`
	ApplicationAssociationArn string `json:"ApplicationAssociationArn"`
	ApplicationID             string `json:"ApplicationId"`
	ClientID                  string `json:"ClientId"`
	AssociationID             string `json:"AssociationId"`
}

ApplicationAssociation binds an application to a client such as a Connect instance.

type ApplicationAssociationSummary

type ApplicationAssociationSummary struct {
	ApplicationArn            string `json:"ApplicationArn"`
	ApplicationAssociationArn string `json:"ApplicationAssociationArn"`
	ClientID                  string `json:"ClientId"`
}

ApplicationAssociationSummary is the list shape of an ApplicationAssociation.

type ApplicationConfig

type ApplicationConfig struct {
	ContactHandling *ContactHandling `json:"ContactHandling,omitempty"`
}

ApplicationConfig holds application behaviour settings.

type ApplicationSourceConfig

type ApplicationSourceConfig struct {
	ExternalURLConfig *ExternalURLConfig `json:"ExternalUrlConfig,omitempty"`
}

ApplicationSourceConfig is where the application is served from.

type ApplicationSummary

type ApplicationSummary struct {
	CreatedTime      awstime.EpochTime `json:"CreatedTime"`
	LastModifiedTime awstime.EpochTime `json:"LastModifiedTime"`
	ApplicationType  string            `json:"ApplicationType"`
	Arn              string            `json:"Arn"`
	ID               string            `json:"Id"`
	Name             string            `json:"Name"`
	Namespace        string            `json:"Namespace"`
	IsService        bool              `json:"IsService"`
}

ApplicationSummary is the list shape of an Application.

type AuthConfig

type AuthConfig struct {
	AudienceOverride             string `json:"AudienceOverride,omitempty"`
	AuthType                     string `json:"AuthType,omitempty"`
	CredentialProviderIdentifier string `json:"CredentialProviderIdentifier,omitempty"`
}

AuthConfig describes how the application authenticates.

type ContactHandling

type ContactHandling struct {
	Scope string `json:"Scope"`
}

ContactHandling scopes the application to contacts.

type CreateApplicationInput

type CreateApplicationInput struct {
	Tags                    map[string]string
	ApplicationSourceConfig *ApplicationSourceConfig
	ApplicationConfig       *ApplicationConfig
	IframeConfig            *IframeConfig
	AuthConfig              *AuthConfig
	InitializationTimeout   *int32
	Name                    string
	Namespace               string
	Description             string
	ApplicationType         string
	ClientToken             string
	Permissions             []string
	Publications            []Publication
	Subscriptions           []Subscription
	IsService               bool
}

CreateApplicationInput is the CreateApplication request body.

type CreateDataIntegrationAssociationInput

type CreateDataIntegrationAssociationInput struct {
	ClientAssociationMetadata map[string]string
	ObjectConfiguration       map[string]map[string][]string
	ExecutionConfiguration    *ExecutionConfiguration
	Identifier                string `json:"-"        path:"DataIntegrationIdentifier"`
	ClientID                  string `json:"ClientId"`
	DestinationURI            string
	ClientToken               string
}

CreateDataIntegrationAssociationInput is the CreateDataIntegrationAssociation request.

type CreateDataIntegrationInput

type CreateDataIntegrationInput struct {
	Tags                map[string]string
	ObjectConfiguration map[string]map[string][]string
	FileConfiguration   *FileConfiguration
	ScheduleConfig      *ScheduleConfiguration
	Name                string
	Description         string
	KmsKey              string
	SourceURI           string
	ClientToken         string
}

CreateDataIntegrationInput is the CreateDataIntegration request body.

type CreateEventIntegrationInput

type CreateEventIntegrationInput struct {
	Tags           map[string]string
	EventFilter    *EventFilter
	Name           string
	Description    string
	EventBridgeBus string
	ClientToken    string
}

CreateEventIntegrationInput is the CreateEventIntegration request body.

type DataIntegration

type DataIntegration struct {
	ObjectConfiguration   map[string]map[string][]string `json:"ObjectConfiguration,omitempty"`
	Tags                  map[string]string              `json:"Tags,omitempty"`
	FileConfiguration     *FileConfiguration             `json:"FileConfiguration,omitempty"`
	ScheduleConfiguration *ScheduleConfiguration         `json:"ScheduleConfiguration,omitempty"`
	Arn                   string                         `json:"Arn"`
	ID                    string                         `json:"Id"`
	Name                  string                         `json:"Name"`
	Description           string                         `json:"Description,omitempty"`
	KmsKey                string                         `json:"KmsKey"`
	SourceURI             string                         `json:"SourceURI,omitempty"`
}

DataIntegration is an AppIntegrations data integration.

type DataIntegrationAssociation

type DataIntegrationAssociation struct {
	ClientAssociationMetadata     map[string]string              `json:"ClientAssociationMetadata,omitempty"`
	ObjectConfiguration           map[string]map[string][]string `json:"ObjectConfiguration,omitempty"`
	ExecutionConfiguration        *ExecutionConfiguration        `json:"ExecutionConfiguration,omitempty"`
	ClientID                      string                         `json:"ClientId"`
	DataIntegrationArn            string                         `json:"DataIntegrationArn"`
	DataIntegrationAssociationArn string                         `json:"DataIntegrationAssociationArn"`
	DataIntegrationAssociationID  string                         `json:"DataIntegrationAssociationId"`
	DataIntegrationID             string                         `json:"DataIntegrationId"`
	DestinationURI                string                         `json:"DestinationURI,omitempty"`
}

DataIntegrationAssociation binds a data integration to a client.

type DataIntegrationAssociationSummary

type DataIntegrationAssociationSummary struct {
	ExecutionConfiguration        *ExecutionConfiguration `json:"ExecutionConfiguration,omitempty"`
	ClientID                      string                  `json:"ClientId"`
	DataIntegrationArn            string                  `json:"DataIntegrationArn"`
	DataIntegrationAssociationArn string                  `json:"DataIntegrationAssociationArn"`
	DestinationURI                string                  `json:"DestinationURI,omitempty"`
}

DataIntegrationAssociationSummary is the list shape of a DataIntegrationAssociation.

type DataIntegrationSummary

type DataIntegrationSummary struct {
	Arn       string `json:"Arn"`
	Name      string `json:"Name"`
	SourceURI string `json:"SourceURI,omitempty"`
}

DataIntegrationSummary is the list shape of a DataIntegration.

type EventFilter

type EventFilter struct {
	Source string `json:"Source"`
}

EventFilter selects the partner event source of an event integration.

type EventIntegration

type EventIntegration struct {
	Tags                map[string]string `json:"Tags,omitempty"`
	Name                string            `json:"Name"`
	EventIntegrationArn string            `json:"EventIntegrationArn"`
	Description         string            `json:"Description,omitempty"`
	EventBridgeBus      string            `json:"EventBridgeBus"`
	EventFilter         EventFilter       `json:"EventFilter"`
}

EventIntegration is an AppIntegrations event integration; the JSON names are the wire names.

type EventIntegrationAssociation

type EventIntegrationAssociation struct {
	ClientAssociationMetadata      map[string]string `json:"ClientAssociationMetadata,omitempty"`
	ClientID                       string            `json:"ClientId"`
	EventBridgeRuleName            string            `json:"EventBridgeRuleName"`
	EventIntegrationAssociationArn string            `json:"EventIntegrationAssociationArn"`
	EventIntegrationAssociationID  string            `json:"EventIntegrationAssociationId"`
	EventIntegrationName           string            `json:"EventIntegrationName"`
}

EventIntegrationAssociation links an event integration to a client such as a Connect instance.

type EventRules

type EventRules interface {
	BusExists(ctx context.Context, bus string) bool
	PutRule(ctx context.Context, bus, name, source string) error
	DeleteRule(ctx context.Context, bus, name string) error
}

EventRules is the EventBridge surface event integration associations drive.

type ExecutionConfiguration

type ExecutionConfiguration struct {
	OnDemandConfiguration *OnDemandConfiguration `json:"OnDemandConfiguration,omitempty"`
	ScheduleConfiguration *ScheduleConfiguration `json:"ScheduleConfiguration,omitempty"`
	ExecutionMode         string                 `json:"ExecutionMode"`
}

ExecutionConfiguration says how a data integration association runs.

type ExternalURLConfig

type ExternalURLConfig struct {
	AccessURL       string   `json:"AccessUrl"`
	ApprovedOrigins []string `json:"ApprovedOrigins,omitempty"`
}

ExternalURLConfig locates an application.

type FileConfiguration

type FileConfiguration struct {
	Filters map[string][]string `json:"Filters,omitempty"`
	Folders []string            `json:"Folders"`
}

FileConfiguration selects the files a data integration pulls.

type Handler

type Handler struct {
	Backend *InMemoryBackend

	DefaultRegion string
	// contains filtered or unexported fields
}

Handler serves the AppIntegrations REST-JSON API.

func NewHandler

func NewHandler(backend *InMemoryBackend) *Handler

NewHandler wraps a backend.

func (*Handler) ChaosOperations

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

ChaosOperations lists the fault-injectable operations.

func (*Handler) ChaosRegions

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

ChaosRegions lists the regions served.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase service name for fault rules.

func (*Handler) ExtractOperation

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

ExtractOperation returns the operation name for metrics.

func (*Handler) ExtractResource

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

ExtractResource returns the first path label for metrics.

func (*Handler) GetSupportedOperations

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

GetSupportedOperations lists every routed operation.

func (*Handler) Handler

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

Handler returns the Echo handler.

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 state.

func (*Handler) Restore

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

Restore implements persistence.Persistable.

func (*Handler) RouteMatcher

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

RouteMatcher matches by SigV4 signing name (or SDK user agent) plus a known path shape.

func (*Handler) Snapshot

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

Snapshot implements persistence.Persistable.

type IframeConfig

type IframeConfig struct {
	Allow   []string `json:"Allow,omitempty"`
	Sandbox []string `json:"Sandbox,omitempty"`
}

IframeConfig lists iframe permissions.

type InMemoryBackend

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

InMemoryBackend holds all AppIntegrations state behind one coarse lock.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates an empty backend.

func (*InMemoryBackend) CreateApplication

func (b *InMemoryBackend) CreateApplication(ctx context.Context, in *CreateApplicationInput) (*Application, error)

CreateApplication registers an application under a unique namespace.

func (*InMemoryBackend) CreateApplicationAssociation

func (b *InMemoryBackend) CreateApplicationAssociation(
	ctx context.Context, applicationIdentifier, clientID string,
) (*ApplicationAssociation, error)

CreateApplicationAssociation links an application to a client such as a Connect instance.

func (*InMemoryBackend) CreateDataIntegration

func (b *InMemoryBackend) CreateDataIntegration(
	ctx context.Context, in *CreateDataIntegrationInput,
) (*DataIntegration, error)

CreateDataIntegration registers a data integration.

func (*InMemoryBackend) CreateDataIntegrationAssociation

func (b *InMemoryBackend) CreateDataIntegrationAssociation(
	ctx context.Context, in *CreateDataIntegrationAssociationInput,
) (*DataIntegrationAssociation, error)

CreateDataIntegrationAssociation binds a data integration to a client; a data integration takes one.

func (*InMemoryBackend) CreateEventIntegration

func (b *InMemoryBackend) CreateEventIntegration(
	ctx context.Context, in *CreateEventIntegrationInput,
) (*EventIntegration, error)

CreateEventIntegration registers an event integration on an EventBridge bus.

func (*InMemoryBackend) CreateEventIntegrationAssociation

func (b *InMemoryBackend) CreateEventIntegrationAssociation(
	ctx context.Context, eventIntegration, clientID string, metadata map[string]string,
) (*EventIntegrationAssociation, error)

CreateEventIntegrationAssociation links an event integration to a client and owns the EventBridge rule for it.

func (*InMemoryBackend) DeleteApplication

func (b *InMemoryBackend) DeleteApplication(identifier string, force bool) error

DeleteApplication removes an application; force also removes its associations.

func (*InMemoryBackend) DeleteApplicationAssociation

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

DeleteApplicationAssociation removes an application association.

func (*InMemoryBackend) DeleteDataIntegration

func (b *InMemoryBackend) DeleteDataIntegration(identifier string) error

DeleteDataIntegration removes a data integration that has no associations.

func (*InMemoryBackend) DeleteEventIntegration

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

DeleteEventIntegration removes an event integration that has no associations.

func (*InMemoryBackend) DeleteEventIntegrationAssociation

func (b *InMemoryBackend) DeleteEventIntegrationAssociation(ctx context.Context, id string) error

DeleteEventIntegrationAssociation removes an association and its EventBridge rule.

func (*InMemoryBackend) GetApplication

func (b *InMemoryBackend) GetApplication(identifier string) (*Application, error)

GetApplication resolves an application ID or ARN.

func (*InMemoryBackend) GetDataIntegration

func (b *InMemoryBackend) GetDataIntegration(identifier string) (*DataIntegration, error)

GetDataIntegration resolves an ID, ARN or name.

func (*InMemoryBackend) GetEventIntegration

func (b *InMemoryBackend) GetEventIntegration(name string) (*EventIntegration, error)

GetEventIntegration returns an event integration by name.

func (*InMemoryBackend) ListApplicationAssociations

func (b *InMemoryBackend) ListApplicationAssociations(
	identifier, token string, maxResults int32,
) ([]ApplicationAssociationSummary, string, error)

ListApplicationAssociations pages through the associations of one application.

func (*InMemoryBackend) ListApplications

func (b *InMemoryBackend) ListApplications(
	appType, token string,
	maxResults int32,
) ([]ApplicationSummary, string, error)

ListApplications pages through applications ordered by namespace, optionally filtered by type.

func (*InMemoryBackend) ListDataIntegrationAssociations

func (b *InMemoryBackend) ListDataIntegrationAssociations(
	identifier, token string, maxResults int32,
) ([]DataIntegrationAssociationSummary, string, error)

ListDataIntegrationAssociations pages through the associations of one data integration.

func (*InMemoryBackend) ListDataIntegrations

func (b *InMemoryBackend) ListDataIntegrations(
	token string,
	maxResults int32,
) ([]DataIntegrationSummary, string, error)

ListDataIntegrations pages through data integrations ordered by name.

func (*InMemoryBackend) ListEventIntegrationAssociations

func (b *InMemoryBackend) ListEventIntegrationAssociations(
	name, token string, maxResults int32,
) ([]EventIntegrationAssociation, string, error)

ListEventIntegrationAssociations pages through the associations of one event integration.

func (*InMemoryBackend) ListEventIntegrations

func (b *InMemoryBackend) ListEventIntegrations(token string, maxResults int32) ([]EventIntegration, string, error)

ListEventIntegrations pages through event integrations ordered by name.

func (*InMemoryBackend) ListTagsForResource

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

ListTagsForResource returns a copy of the tags.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all state.

func (*InMemoryBackend) Restore

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

Restore loads a snapshot; an incompatible version is discarded.

func (*InMemoryBackend) SetClock

func (b *InMemoryBackend) SetClock(now func() time.Time)

SetClock replaces the time source.

func (*InMemoryBackend) SetEventRules

func (b *InMemoryBackend) SetEventRules(r EventRules)

SetEventRules wires the EventBridge used to validate buses and own association rules.

func (*InMemoryBackend) Snapshot

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

Snapshot serialises the backend state.

func (*InMemoryBackend) TagResource

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

TagResource adds or replaces tags.

func (*InMemoryBackend) UntagResource

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

UntagResource removes tags by key.

func (*InMemoryBackend) UpdateApplication

func (b *InMemoryBackend) UpdateApplication(in *UpdateApplicationInput) error

UpdateApplication replaces the supplied settings of an application.

func (*InMemoryBackend) UpdateDataIntegration

func (b *InMemoryBackend) UpdateDataIntegration(identifier string, name, description *string) error

UpdateDataIntegration changes the name and description of a data integration.

func (*InMemoryBackend) UpdateDataIntegrationAssociation

func (b *InMemoryBackend) UpdateDataIntegrationAssociation(
	identifier, associationIdentifier string, cfg *ExecutionConfiguration,
) error

UpdateDataIntegrationAssociation replaces the execution configuration of an association.

func (*InMemoryBackend) UpdateEventIntegration

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

UpdateEventIntegration changes the description of an event integration.

type OnDemandConfiguration

type OnDemandConfiguration struct {
	StartTime string `json:"StartTime"`
	EndTime   string `json:"EndTime,omitempty"`
}

OnDemandConfiguration bounds an on-demand execution.

type Provider

type Provider struct{}

Provider implements service.Provider.

func (*Provider) Init

Init builds the backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type Publication

type Publication struct {
	Event       string `json:"Event"`
	Schema      string `json:"Schema"`
	Description string `json:"Description,omitempty"`
}

Publication is an event an application publishes.

type ScheduleConfiguration

type ScheduleConfiguration struct {
	FirstExecutionFrom string `json:"FirstExecutionFrom,omitempty"`
	Object             string `json:"Object,omitempty"`
	ScheduleExpression string `json:"ScheduleExpression"`
}

ScheduleConfiguration schedules a data integration.

type Subscription

type Subscription struct {
	Event       string `json:"Event"`
	Description string `json:"Description,omitempty"`
}

Subscription is an event an application consumes.

type UpdateApplicationInput

type UpdateApplicationInput struct {
	ApplicationSourceConfig *ApplicationSourceConfig
	ApplicationConfig       *ApplicationConfig
	IframeConfig            *IframeConfig
	AuthConfig              *AuthConfig
	InitializationTimeout   *int32
	IsService               *bool
	Name                    *string
	Description             *string
	ApplicationType         *string
	Arn                     string `json:"-" path:"Arn"`
	Permissions             []string
	Publications            []Publication
	Subscriptions           []Subscription
}

UpdateApplicationInput is the UpdateApplication request.

Jump to

Keyboard shortcuts

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