appintegrations

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 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