Documentation
¶
Overview ¶
Package appintegrations emulates Amazon AppIntegrations: event and data integrations, their associations, and applications.
Index ¶
- Variables
- type Application
- type ApplicationAssociation
- type ApplicationAssociationSummary
- type ApplicationConfig
- type ApplicationSourceConfig
- type ApplicationSummary
- type AuthConfig
- type ContactHandling
- type CreateApplicationInput
- type CreateDataIntegrationAssociationInput
- type CreateDataIntegrationInput
- type CreateEventIntegrationInput
- type DataIntegration
- type DataIntegrationAssociation
- type DataIntegrationAssociationSummary
- type DataIntegrationSummary
- type EventFilter
- type EventIntegration
- type EventIntegrationAssociation
- type EventRules
- type ExecutionConfiguration
- type ExternalURLConfig
- type FileConfiguration
- type Handler
- func (h *Handler) ChaosOperations() []string
- func (h *Handler) ChaosRegions() []string
- func (h *Handler) ChaosServiceName() string
- func (h *Handler) ExtractOperation(c *echo.Context) string
- func (h *Handler) ExtractResource(c *echo.Context) string
- func (h *Handler) GetSupportedOperations() []string
- func (h *Handler) Handler() echo.HandlerFunc
- func (h *Handler) MatchPriority() int
- func (h *Handler) Name() string
- func (h *Handler) Reset()
- func (h *Handler) Restore(ctx context.Context, data []byte) error
- func (h *Handler) RouteMatcher() service.Matcher
- func (h *Handler) Snapshot(ctx context.Context) []byte
- type IframeConfig
- type InMemoryBackend
- func (b *InMemoryBackend) CreateApplication(ctx context.Context, in *CreateApplicationInput) (*Application, error)
- func (b *InMemoryBackend) CreateApplicationAssociation(ctx context.Context, applicationIdentifier, clientID string) (*ApplicationAssociation, error)
- func (b *InMemoryBackend) CreateDataIntegration(ctx context.Context, in *CreateDataIntegrationInput) (*DataIntegration, error)
- func (b *InMemoryBackend) CreateDataIntegrationAssociation(ctx context.Context, in *CreateDataIntegrationAssociationInput) (*DataIntegrationAssociation, error)
- func (b *InMemoryBackend) CreateEventIntegration(ctx context.Context, in *CreateEventIntegrationInput) (*EventIntegration, error)
- func (b *InMemoryBackend) CreateEventIntegrationAssociation(ctx context.Context, eventIntegration, clientID string, ...) (*EventIntegrationAssociation, error)
- func (b *InMemoryBackend) DeleteApplication(identifier string, force bool) error
- func (b *InMemoryBackend) DeleteApplicationAssociation(id string) error
- func (b *InMemoryBackend) DeleteDataIntegration(identifier string) error
- func (b *InMemoryBackend) DeleteEventIntegration(name string) error
- func (b *InMemoryBackend) DeleteEventIntegrationAssociation(ctx context.Context, id string) error
- func (b *InMemoryBackend) GetApplication(identifier string) (*Application, error)
- func (b *InMemoryBackend) GetDataIntegration(identifier string) (*DataIntegration, error)
- func (b *InMemoryBackend) GetEventIntegration(name string) (*EventIntegration, error)
- func (b *InMemoryBackend) ListApplicationAssociations(identifier, token string, maxResults int32) ([]ApplicationAssociationSummary, string, error)
- func (b *InMemoryBackend) ListApplications(appType, token string, maxResults int32) ([]ApplicationSummary, string, error)
- func (b *InMemoryBackend) ListDataIntegrationAssociations(identifier, token string, maxResults int32) ([]DataIntegrationAssociationSummary, string, error)
- func (b *InMemoryBackend) ListDataIntegrations(token string, maxResults int32) ([]DataIntegrationSummary, string, error)
- func (b *InMemoryBackend) ListEventIntegrationAssociations(name, token string, maxResults int32) ([]EventIntegrationAssociation, string, error)
- func (b *InMemoryBackend) ListEventIntegrations(token string, maxResults int32) ([]EventIntegration, string, error)
- func (b *InMemoryBackend) ListTagsForResource(resourceARN string) (map[string]string, error)
- func (b *InMemoryBackend) Reset()
- func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error
- func (b *InMemoryBackend) SetClock(now func() time.Time)
- func (b *InMemoryBackend) SetEventRules(r EventRules)
- func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte
- func (b *InMemoryBackend) TagResource(resourceARN string, add map[string]string) error
- func (b *InMemoryBackend) UntagResource(resourceARN string, keys []string) error
- func (b *InMemoryBackend) UpdateApplication(in *UpdateApplicationInput) error
- func (b *InMemoryBackend) UpdateDataIntegration(identifier string, name, description *string) error
- func (b *InMemoryBackend) UpdateDataIntegrationAssociation(identifier, associationIdentifier string, cfg *ExecutionConfiguration) error
- func (b *InMemoryBackend) UpdateEventIntegration(name string, description *string) error
- type OnDemandConfiguration
- type Provider
- type Publication
- type ScheduleConfiguration
- type Subscription
- type UpdateApplicationInput
Constants ¶
This section is empty.
Variables ¶
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 (*Handler) ChaosOperations ¶
ChaosOperations lists the fault-injectable operations.
func (*Handler) ChaosRegions ¶
ChaosRegions lists the regions served.
func (*Handler) ChaosServiceName ¶
ChaosServiceName returns the lowercase service name for fault rules.
func (*Handler) ExtractOperation ¶
ExtractOperation returns the operation name for metrics.
func (*Handler) ExtractResource ¶
ExtractResource returns the first path label for metrics.
func (*Handler) GetSupportedOperations ¶
GetSupportedOperations lists every routed operation.
func (*Handler) Handler ¶
func (h *Handler) Handler() echo.HandlerFunc
Handler returns the Echo handler.
func (*Handler) MatchPriority ¶
MatchPriority returns the routing priority.
func (*Handler) RouteMatcher ¶
RouteMatcher matches by SigV4 signing name (or SDK user agent) plus a known path shape.
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) 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 ¶
func (p *Provider) Init(ctx *service.AppContext) (service.Registerable, error)
Init builds the backend and handler.
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.