connect

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: 31 Imported by: 0

README

Connect

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

Coverage

Metric Value
PARITY entries audited 141 (141 ok)
Feature families 11 (11 ok)
Known gaps 34
Structural gaps (can't be emulated) 2
Deferred items 0
Resource leaks clean
Known gaps
  • Search*: SearchAgentStatuses SearchContactEvaluations SearchContactFlowModules SearchContactFlows SearchDataTables SearchEmailAddresses SearchEvaluationForms SearchHoursOfOperationOverrides SearchHoursOfOperations SearchMetrics SearchNotifications SearchPredefinedAttributes SearchPrompts SearchQueues SearchQuickConnects SearchResourceTags SearchRoutingProfiles SearchRules SearchSecurityProfiles SearchTestCases SearchUserHierarchyGroups SearchUsers SearchViews SearchVocabularies SearchWorkspaceAssociations SearchWorkspaces are not routed
  • EvaluationForms: ActivateEvaluationForm CreateEvaluationForm DeactivateEvaluationForm DeleteContactEvaluation DeleteEvaluationForm DescribeContactEvaluation DescribeEvaluationForm GetEvaluationFormValidation ListContactEvaluations ListEvaluationFormAIVersions ListEvaluationFormVersions ListEvaluationForms StartContactEvaluation StartEvaluationFormValidation SubmitContactEvaluation UpdateContactEvaluation UpdateEvaluationForm are not routed
  • DataTables: BatchCreateDataTableValue BatchDeleteDataTableValue BatchDescribeDataTableValue BatchUpdateDataTableValue CreateDataTable CreateDataTableAttribute DeleteDataTable DeleteDataTableAttribute DescribeDataTable DescribeDataTableAttribute EvaluateDataTableValues ListDataTableAttributes ListDataTablePrimaryValues ListDataTableValues ListDataTables UpdateDataTableAttribute UpdateDataTableMetadata UpdateDataTablePrimaryValues are not routed
  • Views: CreateView CreateViewVersion DeleteView DeleteViewVersion DescribeView ListViewVersions ListViews UpdateViewContent UpdateViewMetadata are not routed
  • Workspaces: AssociateWorkspace CreateWorkspace CreateWorkspacePage DeleteWorkspace DeleteWorkspaceMedia DeleteWorkspacePage DescribeWorkspace DisassociateWorkspace ImportWorkspaceMedia ListWorkspaceMedia ListWorkspacePages ListWorkspaces UpdateWorkspaceMetadata UpdateWorkspacePage UpdateWorkspaceTheme UpdateWorkspaceVisibility are not routed
  • TestCases: CreateTestCase DeleteTestCase DescribeTestCase GetTestCaseExecutionSummary ListTestCaseExecutionRecords ListTestCaseExecutions ListTestCases StartTestCaseExecution StopTestCaseExecution UpdateTestCase are not routed
  • Rules: CreateRule DeleteRule DescribeRule ListRules UpdateRule are not routed
  • Email: AssociateEmailAddressAlias AssociateQueueEmailAddresses CreateEmailAddress DeleteEmailAddress DescribeEmailAddress DisassociateEmailAddressAlias DisassociateQueueEmailAddresses ListQueueEmailAddresses SendOutboundEmail StartEmailContact StartOutboundEmailContact UpdateEmailAddressMetadata are not routed
  • TaskTemplates: CreateTaskTemplate DeleteTaskTemplate GetTaskTemplate ListTaskTemplates UpdateContactTaskTemplate UpdateTaskTemplate are not routed
  • PredefinedAttributes: CreatePredefinedAttribute DeletePredefinedAttribute DescribePredefinedAttribute ListPredefinedAttributes UpdatePredefinedAttribute are not routed
  • Notifications: CreateNotification CreatePushNotificationRegistration DeleteNotification DeletePushNotificationRegistration DescribeNotification ListNotifications ListUserNotifications SendOutboundWebNotification UpdateNotificationContent UpdateUserNotificationStatus are not routed
  • Metrics definitions: CreateMetric DeleteMetric DescribeMetric GetContactMetrics ListMetrics UpdateMetricContent UpdateMetricMetadata are not routed
  • HoursOfOperationOverrides: AssociateHoursOfOperations CreateHoursOfOperationOverride DeleteHoursOfOperationOverride DescribeHoursOfOperationOverride DisassociateHoursOfOperations GetEffectiveHoursOfOperations ListChildHoursOfOperations ListHoursOfOperationOverrides UpdateHoursOfOperationOverride are not routed
  • Vocabularies: AssociateDefaultVocabulary CreateVocabulary DeleteVocabulary DescribeVocabulary ListDefaultVocabularies are not routed
  • TrafficDistribution: AssociateTrafficDistributionGroupUser CreateTrafficDistributionGroup DeleteTrafficDistributionGroup DescribeTrafficDistributionGroup DisassociateTrafficDistributionGroupUser GetTrafficDistribution ListTrafficDistributionGroupUsers ListTrafficDistributionGroups UpdateTrafficDistribution are not routed
  • FlowAssociations: AssociateFlow BatchGetFlowAssociation DisassociateFlow GetFlowAssociation ListFlowAssociations are not routed
  • AttachedFiles: BatchGetAttachedFileMetadata CompleteAttachedFileUpload CreateAttachedFile DeleteAttachedFile DescribeAttachedFilesConfiguration GetAttachedFile GetPromptFile ListAttachedFilesConfigurations StartAttachedFileUpload UpdateAttachedFilesConfiguration are not routed
  • Analytics: AssociateAnalyticsDataSet BatchAssociateAnalyticsDataSet BatchDisassociateAnalyticsDataSet DisassociateAnalyticsDataSet ListAnalyticsDataAssociations ListAnalyticsDataLakeDataSets StartContactConversationalAnalyticsJob are not routed
  • FlowVersionsAndAliases: CreateContactFlowAlias CreateContactFlowModuleAlias CreateContactFlowModuleVersion CreateContactFlowVersion DeleteContactFlowAlias DeleteContactFlowModuleAlias DeleteContactFlowModuleVersion DeleteContactFlowVersion DescribeContactFlowAlias DescribeContactFlowModuleAlias ListContactFlowAliases ListContactFlowModuleAliases ListContactFlowModuleVersions ListContactFlowVersions UpdateContactFlowAlias UpdateContactFlowModuleAlias are not routed
  • SecurityProfile extras: AssociateSecurityProfiles DisassociateSecurityProfiles ListEntitySecurityProfiles ListSecurityProfileAIAgents ListSecurityProfileApplications ListSecurityProfileFlowModules are not routed
  • UserProficiencies and contacts of users: AssociateUserProficiencies DisassociateUserProficiencies DismissUserContact ListUserProficiencies UpdateUserConfig UpdateUserProficiencies are not routed
  • Contact media and call control: MonitorContact PauseContact ResumeContact ResumeContactRecording StartAssistantContact StartContactMediaProcessing StartContactRecording StartContactStreaming StartScreenSharing StartWebRTCContact StopContactMediaProcessing StopContactRecording StopContactStreaming SuspendContactRecording TransferContact are not routed
  • Contact data and participants: AssociateContactWithUser BatchPutContact CreateAuthCode CreateContact CreateParticipant CreatePersistentContactAssociation DeleteContactData DeleteSession GetFederationToken ListAssociatedContacts ListContactReferences ListRealtimeContactAnalysisSegmentsV2 SendChatIntegrationEvent StartOutboundChatContact UpdateContactRoutingData UpdateContactSchedule UpdateParticipantAuthentication UpdateParticipantRoleConfig are not routed
  • Instance extras: GetCrossRegionRouting ReplicateInstance UpdateCrossRegionRouting are not routed
  • PhoneNumber import: ImportPhoneNumber are not routed
  • Routing profile and queue extras: ListRoutingProfileManualAssignmentQueues are not routed
  • Extraction/Push/Auth: CreateExtractionDefinition DeleteExtractionDefinition DescribeAuthenticationProfile DescribeExtractionDefinition ListAuthenticationProfiles ListExtractionDefinitions UpdateAuthenticationProfile UpdateExtractionDefinition are not routed
  • Other: GetMetricDataV2 are not routed
  • Contact.Recordings, QualityMetrics, ChatMetrics, DisconnectDetails and the other contact analytics members are never populated
  • ListQueues QueueTypes=AGENT: per-agent queues are not modeled
  • CreateInstance quota (2 per Region) is not enforced
  • ResourceGroupsTaggingAPI and CloudFormation do not expose or provision Connect resources
  • Default contact flows are not provisioned with a new instance
  • Lex bot associations are shape-checked only: no Lex service exists in the emulator
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 telephony or media plane: outbound calls are never placed, no audio flows, and contacts only change state through StopContact and UpdateContact because no agent softphone or customer endpoint exists.
  • Phone numbers come from a fixed pool of fictional numbers: the carrier inventory behind SearchAvailablePhoneNumbers cannot exist in an emulator.

More

Documentation

Overview

Package connect emulates the Amazon Connect control plane and the contact records behind its metrics.

Index

Constants

This section is empty.

Variables

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

ErrNilAppContext is returned by Init when no AppContext is supplied.

Functions

This section is empty.

Types

type AgentContactReference

type AgentContactReference struct {
	ConnectedToAgentTimestamp *awstime.EpochTime `json:"ConnectedToAgentTimestamp,omitempty"`
	StateStartTimestamp       *awstime.EpochTime `json:"StateStartTimestamp,omitempty"`
	Queue                     *Reference         `json:"Queue,omitempty"`
	AgentContactState         string             `json:"AgentContactState"`
	Channel                   string             `json:"Channel"`
	ContactID                 string             `json:"ContactId"`
	InitiationMethod          string             `json:"InitiationMethod"`
}

AgentContactReference is a contact an agent is handling.

type AgentStatus

type AgentStatus struct {
	Stamp
	DisplayOrder   *int32            `json:"DisplayOrder,omitempty"`
	Tags           map[string]string `json:"Tags,omitempty"`
	AgentStatusARN string            `json:"AgentStatusARN"`
	AgentStatusID  string            `json:"AgentStatusId"`
	Description    string            `json:"Description,omitempty"`
	Name           string            `json:"Name"`
	State          string            `json:"State"`
	Type           string            `json:"Type"`
}

AgentStatus is a status an agent can set.

type AgentStatusReference

type AgentStatusReference struct {
	StatusStartTimestamp *awstime.EpochTime `json:"StatusStartTimestamp,omitempty"`
	StatusArn            string             `json:"StatusArn"`
	StatusName           string             `json:"StatusName"`
}

AgentStatusReference is an agent's current status.

type AgentStatusSummary

type AgentStatusSummary struct {
	Stamp
	Arn  string `json:"Arn"`
	ID   string `json:"Id"`
	Name string `json:"Name"`
	Type string `json:"Type"`
}

AgentStatusSummary is the list shape of an AgentStatus.

type Attribute

type Attribute struct {
	AttributeType string `json:"AttributeType"`
	Value         string `json:"Value"`
}

Attribute is one instance attribute.

type AvailableNumberSummary

type AvailableNumberSummary struct {
	PhoneNumber            string `json:"PhoneNumber"`
	PhoneNumberCountryCode string `json:"PhoneNumberCountryCode"`
	PhoneNumberType        string `json:"PhoneNumberType"`
}

AvailableNumberSummary is an unclaimed number of the pool.

type Backend

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

Backend holds all Amazon Connect state behind one coarse lock.

func NewBackend

func NewBackend(accountID, region string) *Backend

NewBackend creates an empty backend.

func (*Backend) AssociateApprovedOrigin

func (b *Backend) AssociateApprovedOrigin(ref, origin string) error

AssociateApprovedOrigin allows an origin to embed the instance's CCP.

func (*Backend) AssociateBot

func (b *Backend) AssociateBot(ref string, cfg LexBotConfig) error

AssociateBot associates a Lex V1 or V2 bot with the instance.

func (*Backend) AssociateInstanceStorageConfig

func (b *Backend) AssociateInstanceStorageConfig(
	ctx context.Context, ref, resourceType string, cfg *InstanceStorageConfig,
) (string, error)

AssociateInstanceStorageConfig attaches a storage target for one kind of instance data.

func (*Backend) AssociateLambdaFunction

func (b *Backend) AssociateLambdaFunction(ctx context.Context, ref, functionARN string) error

AssociateLambdaFunction lets contact flows invoke a Lambda function.

func (*Backend) AssociatePhoneNumberContactFlow

func (b *Backend) AssociatePhoneNumberContactFlow(in *PhoneFlowInput) (*empty, error)

AssociatePhoneNumberContactFlow routes calls to a number through a contact flow.

func (*Backend) AssociateQueueQuickConnects

func (b *Backend) AssociateQueueQuickConnects(in *QuickConnectIDsInput) (*empty, error)

AssociateQueueQuickConnects adds quick connects to a queue.

func (*Backend) AssociateRoutingProfileQueues

func (b *Backend) AssociateRoutingProfileQueues(ctx context.Context, in *UpdateRoutingProfileInput) (*empty, error)

AssociateRoutingProfileQueues adds queue configs.

func (*Backend) AssociateSecurityKey

func (b *Backend) AssociateSecurityKey(ref, key string) (string, error)

AssociateSecurityKey trusts a public key for the instance.

func (*Backend) ClaimPhoneNumber

func (b *Backend) ClaimPhoneNumber(ctx context.Context, in *ClaimPhoneNumberInput) (*phoneOut, error)

ClaimPhoneNumber claims a number of the pool for an instance.

func (*Backend) CreateAgentStatus

func (b *Backend) CreateAgentStatus(ctx context.Context, in *CreateAgentStatusInput) (*agentStatusOut, error)

CreateAgentStatus creates a custom agent status.

func (*Backend) CreateContactFlow

func (b *Backend) CreateContactFlow(ctx context.Context, in *CreateContactFlowInput) (*contactFlowOut, error)

CreateContactFlow creates a contact flow after validating its content.

func (*Backend) CreateContactFlowModule

func (b *Backend) CreateContactFlowModule(ctx context.Context, in *CreateContactFlowModuleInput) (*moduleOut, error)

CreateContactFlowModule creates a flow module after validating its content.

func (*Backend) CreateHoursOfOperation

func (b *Backend) CreateHoursOfOperation(ctx context.Context, in *CreateHoursOfOperationInput) (*idArnOut, error)

CreateHoursOfOperation creates a weekly schedule.

func (*Backend) CreateInstance

func (b *Backend) CreateInstance(ctx context.Context, in *CreateInstanceInput) (*Instance, error)

CreateInstance provisions an instance with its default queue, routing profile, security profiles and agent statuses.

func (*Backend) CreateIntegrationAssociation

func (b *Backend) CreateIntegrationAssociation(
	ctx context.Context,
	in *CreateIntegrationAssociationInput,
) (*integrationOut, error)

CreateIntegrationAssociation links the instance to an integration; EVENT and APPLICATION register in AppIntegrations.

func (*Backend) CreatePrompt

func (b *Backend) CreatePrompt(ctx context.Context, in *CreatePromptInput) (*promptOut, error)

CreatePrompt creates a prompt from a WAV object in S3.

func (*Backend) CreateQueue

func (b *Backend) CreateQueue(ctx context.Context, in *CreateQueueInput) (*queueOut, error)

CreateQueue creates a standard queue.

func (*Backend) CreateQuickConnect

func (b *Backend) CreateQuickConnect(ctx context.Context, in *CreateQuickConnectInput) (*quickConnectOut, error)

CreateQuickConnect creates a quick connect.

func (*Backend) CreateRoutingProfile

func (b *Backend) CreateRoutingProfile(ctx context.Context, in *CreateRoutingProfileInput) (*routingProfileOut, error)

CreateRoutingProfile creates a routing profile.

func (*Backend) CreateSecurityProfile

func (b *Backend) CreateSecurityProfile(
	ctx context.Context,
	in *CreateSecurityProfileInput,
) (*securityProfileOut, error)

CreateSecurityProfile creates a security profile.

func (*Backend) CreateUseCase

func (b *Backend) CreateUseCase(_ context.Context, in *CreateUseCaseInput) (*useCaseOut, error)

CreateUseCase adds a use case to an integration association.

func (*Backend) CreateUser

func (b *Backend) CreateUser(ctx context.Context, in *CreateUserInput) (*userOut, error)

CreateUser creates a user.

func (*Backend) CreateUserHierarchyGroup

func (b *Backend) CreateUserHierarchyGroup(
	ctx context.Context,
	in *CreateUserHierarchyGroupInput,
) (*hierarchyGroupOut, error)

CreateUserHierarchyGroup creates a group at the next free level under an optional parent.

func (*Backend) DeleteContactFlow

func (b *Backend) DeleteContactFlow(inst, id string) (*empty, error)

DeleteContactFlow removes a flow no phone number, queue or quick connect uses.

func (*Backend) DeleteContactFlowModule

func (b *Backend) DeleteContactFlowModule(inst, id string) (*empty, error)

DeleteContactFlowModule removes a flow module.

func (*Backend) DeleteHoursOfOperation

func (b *Backend) DeleteHoursOfOperation(inst, id string) (*empty, error)

DeleteHoursOfOperation removes a schedule that no queue uses.

func (*Backend) DeleteInstance

func (b *Backend) DeleteInstance(ctx context.Context, ref string) error

DeleteInstance removes an instance and everything scoped to it.

func (*Backend) DeleteIntegrationAssociation

func (b *Backend) DeleteIntegrationAssociation(ctx context.Context, inst, id string) (*empty, error)

DeleteIntegrationAssociation removes an association and its AppIntegrations counterpart.

func (*Backend) DeletePrompt

func (b *Backend) DeletePrompt(inst, id string) (*empty, error)

DeletePrompt removes a prompt.

func (*Backend) DeleteQueue

func (b *Backend) DeleteQueue(inst, id string) (*empty, error)

DeleteQueue removes a queue that no routing profile or quick connect references.

func (*Backend) DeleteQuickConnect

func (b *Backend) DeleteQuickConnect(inst, id string) (*empty, error)

DeleteQuickConnect removes a quick connect that no queue uses.

func (*Backend) DeleteRoutingProfile

func (b *Backend) DeleteRoutingProfile(inst, id string) (*empty, error)

DeleteRoutingProfile removes a routing profile that has no users.

func (*Backend) DeleteSecurityProfile

func (b *Backend) DeleteSecurityProfile(inst, id string) (*empty, error)

DeleteSecurityProfile removes a security profile no user holds.

func (*Backend) DeleteUseCase

func (b *Backend) DeleteUseCase(inst, assocID, useCaseID string) (*empty, error)

DeleteUseCase removes a use case.

func (*Backend) DeleteUser

func (b *Backend) DeleteUser(inst, id string) (*empty, error)

DeleteUser removes a user that is not handling a contact.

func (*Backend) DeleteUserHierarchyGroup

func (b *Backend) DeleteUserHierarchyGroup(inst, id string) (*empty, error)

DeleteUserHierarchyGroup removes a leaf group no user belongs to.

func (*Backend) DescribeAgentStatus

func (b *Backend) DescribeAgentStatus(inst, id string) (*AgentStatus, error)

DescribeAgentStatus returns an agent status.

func (*Backend) DescribeContact

func (b *Backend) DescribeContact(inst, id string) (*Contact, error)

DescribeContact returns a contact.

func (*Backend) DescribeContactFlow

func (b *Backend) DescribeContactFlow(inst, id string) (*ContactFlow, error)

DescribeContactFlow returns a contact flow.

func (*Backend) DescribeContactFlowModule

func (b *Backend) DescribeContactFlowModule(inst, id string) (*ContactFlowModule, error)

DescribeContactFlowModule returns a flow module.

func (*Backend) DescribeHoursOfOperation

func (b *Backend) DescribeHoursOfOperation(inst, id string) (*HoursOfOperation, error)

DescribeHoursOfOperation returns a schedule.

func (*Backend) DescribeInstance

func (b *Backend) DescribeInstance(ref string) (*Instance, error)

DescribeInstance returns an instance by ID or ARN.

func (*Backend) DescribeInstanceAttribute

func (b *Backend) DescribeInstanceAttribute(ref, attrType string) (*Attribute, error)

DescribeInstanceAttribute returns one attribute.

func (*Backend) DescribeInstanceStorageConfig

func (b *Backend) DescribeInstanceStorageConfig(ref, resourceType, assocID string) (*InstanceStorageConfig, error)

DescribeInstanceStorageConfig returns one storage association.

func (*Backend) DescribePhoneNumber

func (b *Backend) DescribePhoneNumber(id string) (*ClaimedPhoneNumberSummary, error)

DescribePhoneNumber returns a claimed number.

func (*Backend) DescribePrompt

func (b *Backend) DescribePrompt(inst, id string) (*Prompt, error)

DescribePrompt returns a prompt.

func (*Backend) DescribeQueue

func (b *Backend) DescribeQueue(inst, id string) (*Queue, error)

DescribeQueue returns a queue.

func (*Backend) DescribeQuickConnect

func (b *Backend) DescribeQuickConnect(inst, id string) (*QuickConnect, error)

DescribeQuickConnect returns a quick connect.

func (*Backend) DescribeRoutingProfile

func (b *Backend) DescribeRoutingProfile(inst, id string) (*RoutingProfile, error)

DescribeRoutingProfile returns a routing profile with its derived counts.

func (*Backend) DescribeSecurityProfile

func (b *Backend) DescribeSecurityProfile(inst, id string) (*SecurityProfile, error)

DescribeSecurityProfile returns a security profile.

func (*Backend) DescribeUser

func (b *Backend) DescribeUser(inst, id string) (*User, error)

DescribeUser returns a user.

func (*Backend) DescribeUserHierarchyGroup

func (b *Backend) DescribeUserHierarchyGroup(inst, id string) (*HierarchyGroup, error)

DescribeUserHierarchyGroup returns a group with its path.

func (*Backend) DescribeUserHierarchyStructure

func (b *Backend) DescribeUserHierarchyStructure(inst string) (*HierarchyStructure, error)

DescribeUserHierarchyStructure returns the defined hierarchy levels.

func (*Backend) DisassociateApprovedOrigin

func (b *Backend) DisassociateApprovedOrigin(ref, origin string) error

DisassociateApprovedOrigin removes an approved origin.

func (*Backend) DisassociateBot

func (b *Backend) DisassociateBot(ref string, cfg LexBotConfig) error

DisassociateBot removes a Lex V1 or V2 bot association.

func (*Backend) DisassociateInstanceStorageConfig

func (b *Backend) DisassociateInstanceStorageConfig(ref, resourceType, assocID string) error

DisassociateInstanceStorageConfig removes a storage association.

func (*Backend) DisassociateLambdaFunction

func (b *Backend) DisassociateLambdaFunction(ref, functionARN string) error

DisassociateLambdaFunction removes a Lambda function association.

func (*Backend) DisassociatePhoneNumberContactFlow

func (b *Backend) DisassociatePhoneNumberContactFlow(in *PhoneFlowInput) (*empty, error)

DisassociatePhoneNumberContactFlow removes the flow of a number.

func (*Backend) DisassociateQueueQuickConnects

func (b *Backend) DisassociateQueueQuickConnects(in *QuickConnectIDsInput) (*empty, error)

DisassociateQueueQuickConnects removes quick connects from a queue.

func (*Backend) DisassociateRoutingProfileQueues

func (b *Backend) DisassociateRoutingProfileQueues(ctx context.Context, in *UpdateRoutingProfileInput) (*empty, error)

DisassociateRoutingProfileQueues removes queue configs.

func (*Backend) DisassociateSecurityKey

func (b *Backend) DisassociateSecurityKey(ref, assocID string) error

DisassociateSecurityKey removes a security key.

func (*Backend) GetContactAttributes

func (b *Backend) GetContactAttributes(inst, id string) (*attributesOut, error)

GetContactAttributes returns a contact's attributes.

func (*Backend) GetCurrentMetricData

func (b *Backend) GetCurrentMetricData(in *GetCurrentMetricDataInput) (*currentMetricsOut, error)

GetCurrentMetricData derives real-time contact and agent metrics from stored state.

func (*Backend) GetCurrentUserData

func (b *Backend) GetCurrentUserData(in *GetCurrentUserDataInput) (*userDataOut, error)

GetCurrentUserData returns the real-time state of agents: status, slots and active contacts.

func (*Backend) GetMetricData

func (b *Backend) GetMetricData(in *GetMetricDataInput) (*historicalMetricsOut, error)

GetMetricData derives historical contact metrics from stored contacts.

func (*Backend) ListAgentStatuses

func (b *Backend) ListAgentStatuses(
	inst string,
	types []string,
	token string,
	maxResults int32,
) ([]AgentStatusSummary, string, error)

ListAgentStatuses pages through agent statuses, optionally restricted to the given types.

func (*Backend) ListApprovedOrigins

func (b *Backend) ListApprovedOrigins(ref, token string, maxResults int32) ([]string, string, error)

ListApprovedOrigins pages through approved origins.

func (*Backend) ListBots

func (b *Backend) ListBots(ref, version, token string, maxResults int32) ([]LexBotConfig, string, error)

ListBots pages through bot associations of one Lex version (V1 or V2).

func (*Backend) ListContactFlowModules

func (b *Backend) ListContactFlowModules(
	inst, state, token string,
	maxResults int32,
) ([]ContactFlowModuleSummary, string, error)

ListContactFlowModules pages through flow modules, optionally restricted to one state.

func (*Backend) ListContactFlows

func (b *Backend) ListContactFlows(
	inst string,
	types []string,
	token string,
	maxResults int32,
) ([]ContactFlowSummary, string, error)

ListContactFlows pages through contact flows, optionally restricted to the given types.

func (*Backend) ListHoursOfOperations

func (b *Backend) ListHoursOfOperations(inst, token string, maxResults int32) ([]Summary, string, error)

ListHoursOfOperations pages through schedules.

func (*Backend) ListInstanceAttributes

func (b *Backend) ListInstanceAttributes(ref, token string, maxResults int32) ([]Attribute, string, error)

ListInstanceAttributes pages through all attributes.

func (*Backend) ListInstanceStorageConfigs

func (b *Backend) ListInstanceStorageConfigs(
	ref, resourceType, token string, maxResults int32,
) ([]InstanceStorageConfig, string, error)

ListInstanceStorageConfigs pages through storage associations of one resource type.

func (*Backend) ListInstances

func (b *Backend) ListInstances(token string, maxResults int32) ([]InstanceSummary, string, error)

ListInstances pages through instances ordered by ID.

func (*Backend) ListIntegrationAssociations

func (b *Backend) ListIntegrationAssociations(
	inst, integrationType, integrationARN, token string,
	maxResults int32,
) ([]IntegrationAssociation, string, error)

ListIntegrationAssociations pages through integration associations, optionally filtered.

func (*Backend) ListLambdaFunctions

func (b *Backend) ListLambdaFunctions(ref, token string, maxResults int32) ([]string, string, error)

ListLambdaFunctions pages through associated Lambda function ARNs.

func (*Backend) ListPhoneNumbers

func (b *Backend) ListPhoneNumbers(
	inst string,
	types, countries []string,
	token string,
	maxResults int32,
) ([]PhoneNumberSummary, string, error)

ListPhoneNumbers pages through the numbers claimed by one instance.

func (*Backend) ListPhoneNumbersV2

func (b *Backend) ListPhoneNumbersV2(in *ListPhoneNumbersV2Input) (*listPhonesOut, error)

ListPhoneNumbersV2 pages through claimed numbers, optionally scoped to a target.

func (*Backend) ListPrompts

func (b *Backend) ListPrompts(inst, token string, maxResults int32) ([]Summary, string, error)

ListPrompts pages through prompts.

func (*Backend) ListQueueQuickConnects

func (b *Backend) ListQueueQuickConnects(
	inst, queueID, token string,
	maxResults int32,
) ([]QuickConnectSummary, string, error)

ListQueueQuickConnects pages through the quick connects of a queue.

func (*Backend) ListQueues

func (b *Backend) ListQueues(
	inst string,
	types []string,
	token string,
	maxResults int32,
) ([]QueueSummary, string, error)

ListQueues pages through queues, optionally restricted to the given types.

func (*Backend) ListQuickConnects

func (b *Backend) ListQuickConnects(
	inst string,
	types []string,
	token string,
	maxResults int32,
) ([]QuickConnectSummary, string, error)

ListQuickConnects pages through quick connects, optionally restricted to the given types.

func (*Backend) ListRoutingProfileQueues

func (b *Backend) ListRoutingProfileQueues(
	inst, id, token string,
	maxResults int32,
) ([]RoutingProfileQueueConfigSummary, string, error)

ListRoutingProfileQueues pages through the queue configs of a profile.

func (*Backend) ListRoutingProfiles

func (b *Backend) ListRoutingProfiles(inst, token string, maxResults int32) ([]Summary, string, error)

ListRoutingProfiles pages through routing profiles.

func (*Backend) ListSecurityKeys

func (b *Backend) ListSecurityKeys(ref, token string, maxResults int32) ([]SecurityKey, string, error)

ListSecurityKeys pages through security keys.

func (*Backend) ListSecurityProfilePermissions

func (b *Backend) ListSecurityProfilePermissions(inst, id, token string, maxResults int32) ([]string, string, error)

ListSecurityProfilePermissions pages through a profile's permissions.

func (*Backend) ListSecurityProfiles

func (b *Backend) ListSecurityProfiles(inst, token string, maxResults int32) ([]Summary, string, error)

ListSecurityProfiles pages through security profiles.

func (*Backend) ListTagsForResource

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

ListTagsForResource returns a copy of the resource's tags.

func (*Backend) ListUseCases

func (b *Backend) ListUseCases(inst, assocID, token string, maxResults int32) ([]UseCase, string, error)

ListUseCases pages through the use cases of an integration association.

func (*Backend) ListUserHierarchyGroups

func (b *Backend) ListUserHierarchyGroups(inst, token string, maxResults int32) ([]Summary, string, error)

ListUserHierarchyGroups pages through hierarchy groups.

func (*Backend) ListUsers

func (b *Backend) ListUsers(inst, token string, maxResults int32) ([]UserSummary, string, error)

ListUsers pages through users.

func (*Backend) PutUserStatus

func (b *Backend) PutUserStatus(ctx context.Context, in *UpdateUserInput) (*empty, error)

PutUserStatus sets the agent status of a user.

func (*Backend) ReleasePhoneNumber

func (b *Backend) ReleasePhoneNumber(id string) (*empty, error)

ReleasePhoneNumber returns a number to the pool.

func (*Backend) Reset

func (b *Backend) Reset()

Reset clears all state.

func (*Backend) Restore

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

Restore loads a snapshot; an incompatible version is discarded.

func (*Backend) SearchAvailablePhoneNumbers

func (b *Backend) SearchAvailablePhoneNumbers(in *SearchAvailablePhoneNumbersInput) (*searchNumbersOut, error)

SearchAvailablePhoneNumbers lists unclaimed numbers of the pool.

func (*Backend) SearchContacts

func (b *Backend) SearchContacts(in *SearchContactsInput) (*searchContactsOut, error)

SearchContacts finds contacts of an instance by time range and the supported criteria.

func (*Backend) SetClock

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

SetClock replaces the time source.

func (*Backend) SetIntegrations

func (b *Backend) SetIntegrations(i Integrations)

SetIntegrations wires AppIntegrations for EVENT and APPLICATION integration associations.

func (*Backend) SetLifecycleDelay

func (b *Backend) SetLifecycleDelay(d time.Duration)

SetLifecycleDelay overrides how long a new instance reports CREATION_IN_PROGRESS; zero keeps the built-in window.

func (*Backend) SetResolvers

func (b *Backend) SetResolvers(r Resolvers)

SetResolvers wires the sibling services used to validate references.

func (*Backend) Snapshot

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

Snapshot serialises the backend state.

func (*Backend) StartChatContact

func (b *Backend) StartChatContact(ctx context.Context, in *StartChatContactInput) (*chatOut, error)

StartChatContact starts a chat contact and issues the participant token for the customer.

func (*Backend) StartOutboundVoiceContact

func (b *Backend) StartOutboundVoiceContact(
	ctx context.Context,
	in *StartOutboundVoiceContactInput,
) (*contactIDOut, error)

StartOutboundVoiceContact places an outbound voice contact.

func (*Backend) StartTaskContact

func (b *Backend) StartTaskContact(ctx context.Context, in *StartTaskContactInput) (*contactIDOut, error)

StartTaskContact creates a task contact, optionally scheduled up to six days ahead.

func (*Backend) StopContact

func (b *Backend) StopContact(in *ContactRefInput) (*empty, error)

StopContact ends a contact that is still active.

func (*Backend) TagContact

func (b *Backend) TagContact(in *ContactRefInput) (*empty, error)

TagContact adds tags to a contact.

func (*Backend) TagResource

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

TagResource adds or replaces tags on any taggable resource.

func (*Backend) UntagContact

func (b *Backend) UntagContact(in *ContactPathInput) (*empty, error)

UntagContact removes tags from a contact.

func (*Backend) UntagResource

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

UntagResource removes tags by key.

func (*Backend) UpdateAgentStatus

func (b *Backend) UpdateAgentStatus(ctx context.Context, in *UpdateAgentStatusInput) (*empty, error)

UpdateAgentStatus changes the supplied settings of an agent status.

func (*Backend) UpdateContact

func (b *Backend) UpdateContact(in *ContactRefInput) (*empty, error)

UpdateContact changes the supplied properties of a contact, including its queue and agent.

func (*Backend) UpdateContactAttributes

func (b *Backend) UpdateContactAttributes(in *ContactRefInput) (*empty, error)

UpdateContactAttributes merges attributes into a contact.

func (*Backend) UpdateContactFlowContent

func (b *Backend) UpdateContactFlowContent(ctx context.Context, in *UpdateContactFlowInput) (*empty, error)

UpdateContactFlowContent replaces the content of a flow after validating it.

func (*Backend) UpdateContactFlowMetadata

func (b *Backend) UpdateContactFlowMetadata(ctx context.Context, in *UpdateContactFlowInput) (*empty, error)

UpdateContactFlowMetadata changes name, description and state of a flow.

func (*Backend) UpdateContactFlowModuleContent

func (b *Backend) UpdateContactFlowModuleContent(_ context.Context, in *UpdateContactFlowModuleInput) (*empty, error)

UpdateContactFlowModuleContent replaces the content and settings of a module.

func (*Backend) UpdateContactFlowModuleMetadata

func (b *Backend) UpdateContactFlowModuleMetadata(_ context.Context, in *UpdateContactFlowModuleInput) (*empty, error)

UpdateContactFlowModuleMetadata changes name, description and state of a module.

func (*Backend) UpdateContactFlowName

func (b *Backend) UpdateContactFlowName(ctx context.Context, in *UpdateContactFlowInput) (*empty, error)

UpdateContactFlowName renames a flow.

func (*Backend) UpdateHoursOfOperation

func (b *Backend) UpdateHoursOfOperation(ctx context.Context, in *UpdateHoursOfOperationInput) (*empty, error)

UpdateHoursOfOperation changes the supplied settings of a schedule.

func (*Backend) UpdateInstanceAttribute

func (b *Backend) UpdateInstanceAttribute(ref, attrType, value string) error

UpdateInstanceAttribute sets one attribute; INBOUND_CALLS and OUTBOUND_CALLS also drive the instance flags.

func (*Backend) UpdateInstanceStorageConfig

func (b *Backend) UpdateInstanceStorageConfig(
	ctx context.Context, ref, resourceType, assocID string, cfg *InstanceStorageConfig,
) error

UpdateInstanceStorageConfig replaces the target of an existing storage association.

func (*Backend) UpdatePhoneNumber

func (b *Backend) UpdatePhoneNumber(in *UpdatePhoneNumberInput) (*phoneOut, error)

UpdatePhoneNumber moves a claimed number to another instance, dropping its flow association.

func (*Backend) UpdatePhoneNumberMetadata

func (b *Backend) UpdatePhoneNumberMetadata(in *UpdatePhoneNumberInput) (*empty, error)

UpdatePhoneNumberMetadata changes the description of a claimed number.

func (*Backend) UpdatePrompt

func (b *Backend) UpdatePrompt(ctx context.Context, in *UpdatePromptInput) (*promptOut, error)

UpdatePrompt changes the supplied settings of a prompt.

func (*Backend) UpdateQueueHoursOfOperation

func (b *Backend) UpdateQueueHoursOfOperation(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueHoursOfOperation points a queue at another schedule.

func (*Backend) UpdateQueueMaxContacts

func (b *Backend) UpdateQueueMaxContacts(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueMaxContacts sets the queue capacity; nil removes the cap.

func (*Backend) UpdateQueueName

func (b *Backend) UpdateQueueName(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueName renames a queue.

func (*Backend) UpdateQueueOutboundCallerConfig

func (b *Backend) UpdateQueueOutboundCallerConfig(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueOutboundCallerConfig sets the caller ID of outbound calls from a queue.

func (*Backend) UpdateQueueOutboundEmailConfig

func (b *Backend) UpdateQueueOutboundEmailConfig(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueOutboundEmailConfig sets the from address of outbound email from a queue.

func (*Backend) UpdateQueueStatus

func (b *Backend) UpdateQueueStatus(ctx context.Context, in *UpdateQueueInput) (*empty, error)

UpdateQueueStatus enables or disables a queue.

func (*Backend) UpdateQuickConnectConfig

func (b *Backend) UpdateQuickConnectConfig(ctx context.Context, in *UpdateQuickConnectInput) (*empty, error)

UpdateQuickConnectConfig replaces the destination of a quick connect.

func (*Backend) UpdateQuickConnectName

func (b *Backend) UpdateQuickConnectName(ctx context.Context, in *UpdateQuickConnectInput) (*empty, error)

UpdateQuickConnectName renames a quick connect.

func (*Backend) UpdateRoutingProfileAgentAvailabilityTimer

func (b *Backend) UpdateRoutingProfileAgentAvailabilityTimer(
	ctx context.Context,
	in *UpdateRoutingProfileInput,
) (*empty, error)

UpdateRoutingProfileAgentAvailabilityTimer sets how agent availability is measured.

func (*Backend) UpdateRoutingProfileConcurrency

func (b *Backend) UpdateRoutingProfileConcurrency(ctx context.Context, in *UpdateRoutingProfileInput) (*empty, error)

UpdateRoutingProfileConcurrency replaces the per-channel concurrency.

func (*Backend) UpdateRoutingProfileDefaultOutboundQueue

func (b *Backend) UpdateRoutingProfileDefaultOutboundQueue(
	ctx context.Context,
	in *UpdateRoutingProfileInput,
) (*empty, error)

UpdateRoutingProfileDefaultOutboundQueue changes the default outbound queue.

func (*Backend) UpdateRoutingProfileName

func (b *Backend) UpdateRoutingProfileName(ctx context.Context, in *UpdateRoutingProfileInput) (*empty, error)

UpdateRoutingProfileName renames a routing profile.

func (*Backend) UpdateRoutingProfileQueues

func (b *Backend) UpdateRoutingProfileQueues(ctx context.Context, in *UpdateRoutingProfileInput) (*empty, error)

UpdateRoutingProfileQueues replaces the priority and delay of existing queue configs.

func (*Backend) UpdateSecurityProfile

func (b *Backend) UpdateSecurityProfile(ctx context.Context, in *UpdateSecurityProfileInput) (*empty, error)

UpdateSecurityProfile changes the supplied settings of a security profile.

func (*Backend) UpdateUserHierarchy

func (b *Backend) UpdateUserHierarchy(ctx context.Context, in *UpdateUserInput) (*empty, error)

UpdateUserHierarchy sets or clears a user's hierarchy group.

func (*Backend) UpdateUserHierarchyGroupName

func (b *Backend) UpdateUserHierarchyGroupName(ctx context.Context, in *UpdateHierarchyGroupNameInput) (*empty, error)

UpdateUserHierarchyGroupName renames a group.

func (*Backend) UpdateUserHierarchyStructure

func (b *Backend) UpdateUserHierarchyStructure(ctx context.Context, in *UpdateHierarchyStructureInput) (*empty, error)

UpdateUserHierarchyStructure defines or renames hierarchy levels; levels must be defined top-down.

func (*Backend) UpdateUserIdentityInfo

func (b *Backend) UpdateUserIdentityInfo(ctx context.Context, in *UpdateUserInput) (*empty, error)

UpdateUserIdentityInfo replaces a user's identity info.

func (*Backend) UpdateUserPhoneConfig

func (b *Backend) UpdateUserPhoneConfig(ctx context.Context, in *UpdateUserInput) (*empty, error)

UpdateUserPhoneConfig replaces a user's phone config.

func (*Backend) UpdateUserRoutingProfile

func (b *Backend) UpdateUserRoutingProfile(ctx context.Context, in *UpdateUserInput) (*empty, error)

UpdateUserRoutingProfile moves a user to another routing profile.

func (*Backend) UpdateUserSecurityProfiles

func (b *Backend) UpdateUserSecurityProfiles(ctx context.Context, in *UpdateUserInput) (*empty, error)

UpdateUserSecurityProfiles replaces a user's security profiles.

type Campaign

type Campaign struct {
	CampaignID string `json:"CampaignId,omitempty"`
}

Campaign links a contact to an outbound campaign.

type ChatMessage

type ChatMessage struct {
	ContentType string `json:"ContentType"`
	Content     string `json:"Content"`
}

ChatMessage is the first message of a chat.

type ClaimPhoneNumberInput

type ClaimPhoneNumberInput struct {
	Tags                   map[string]string
	PhoneNumber            string
	TargetArn              string
	InstanceID             string `json:"InstanceId"`
	PhoneNumberDescription string
	ClientToken            string
}

ClaimPhoneNumberInput is the ClaimPhoneNumber request.

type ClaimedPhoneNumberSummary

type ClaimedPhoneNumberSummary struct {
	PhoneNumberStatus      *PhoneNumberStatus `json:"PhoneNumberStatus,omitempty"`
	Tags                   map[string]string  `json:"Tags,omitempty"`
	InstanceID             string             `json:"InstanceId,omitempty"`
	PhoneNumber            string             `json:"PhoneNumber"`
	PhoneNumberArn         string             `json:"PhoneNumberArn"`
	PhoneNumberCountryCode string             `json:"PhoneNumberCountryCode"`
	PhoneNumberDescription string             `json:"PhoneNumberDescription,omitempty"`
	PhoneNumberID          string             `json:"PhoneNumberId"`
	PhoneNumberType        string             `json:"PhoneNumberType"`
	TargetArn              string             `json:"TargetArn,omitempty"`
}

ClaimedPhoneNumberSummary is a claimed phone number.

type Contact

type Contact struct {
	InitiationTimestamp *awstime.EpochTime `json:"InitiationTimestamp,omitempty"`
	LastUpdateTimestamp *awstime.EpochTime `json:"LastUpdateTimestamp,omitempty"`
	DisconnectTimestamp *awstime.EpochTime `json:"DisconnectTimestamp,omitempty"`
	ScheduledTimestamp  *awstime.EpochTime `json:"ScheduledTimestamp,omitempty"`
	RingStartTimestamp  *awstime.EpochTime `json:"RingStartTimestamp,omitempty"`
	QueueInfo           *ContactQueueInfo  `json:"QueueInfo,omitempty"`
	AgentInfo           *ContactAgentInfo  `json:"AgentInfo,omitempty"`
	CustomerEndpoint    *EndpointInfo      `json:"CustomerEndpoint,omitempty"`
	SystemEndpoint      *EndpointInfo      `json:"SystemEndpoint,omitempty"`
	Campaign            *Campaign          `json:"Campaign,omitempty"`
	Attributes          map[string]string  `json:"Attributes,omitempty"`
	Tags                map[string]string  `json:"Tags,omitempty"`
	DisconnectReason    string             `json:"DisconnectReason,omitempty"`
	Arn                 string             `json:"Arn"`
	Channel             string             `json:"Channel"`
	CustomerID          string             `json:"CustomerId,omitempty"`
	Description         string             `json:"Description,omitempty"`
	ID                  string             `json:"Id"`
	InitialContactID    string             `json:"InitialContactId"`
	InitiationMethod    string             `json:"InitiationMethod"`
	Name                string             `json:"Name,omitempty"`
	PreviousContactID   string             `json:"PreviousContactId,omitempty"`
	RelatedContactID    string             `json:"RelatedContactId,omitempty"`
	OutboundStrategy    json.RawMessage    `json:"OutboundStrategy,omitempty"`
	SegmentAttributes   json.RawMessage    `json:"SegmentAttributes,omitempty"`
}

Contact is a customer interaction.

type ContactAgentInfo

type ContactAgentInfo struct {
	ConnectedToAgentTimestamp *awstime.EpochTime `json:"ConnectedToAgentTimestamp,omitempty"`
	ID                        string             `json:"Id,omitempty"`
}

ContactAgentInfo records the agent a contact reached.

type ContactFlow

type ContactFlow struct {
	Stamp
	Version            *int64            `json:"Version,omitempty"`
	Tags               map[string]string `json:"Tags,omitempty"`
	Arn                string            `json:"Arn"`
	Content            string            `json:"Content"`
	Description        string            `json:"Description,omitempty"`
	FlowContentSha256  string            `json:"FlowContentSha256,omitempty"`
	ID                 string            `json:"Id"`
	Name               string            `json:"Name"`
	State              string            `json:"State"`
	Status             string            `json:"Status"`
	Type               string            `json:"Type"`
	VersionDescription string            `json:"VersionDescription,omitempty"`
}

ContactFlow is a contact flow.

type ContactFlowModule

type ContactFlowModule struct {
	Version                         *int64            `json:"Version,omitempty"`
	Tags                            map[string]string `json:"Tags,omitempty"`
	FlowModuleContentSha256         string            `json:"FlowModuleContentSha256,omitempty"`
	Arn                             string            `json:"Arn"`
	Content                         string            `json:"Content"`
	Description                     string            `json:"Description,omitempty"`
	ID                              string            `json:"Id"`
	Name                            string            `json:"Name"`
	Settings                        string            `json:"Settings,omitempty"`
	State                           string            `json:"State"`
	Status                          string            `json:"Status"`
	VersionDescription              string            `json:"VersionDescription,omitempty"`
	ExternalInvocationConfiguration json.RawMessage   `json:"ExternalInvocationConfiguration,omitempty"`
}

ContactFlowModule is a reusable flow fragment.

type ContactFlowModuleSummary

type ContactFlowModuleSummary struct {
	Arn   string `json:"Arn"`
	ID    string `json:"Id"`
	Name  string `json:"Name"`
	State string `json:"State"`
}

ContactFlowModuleSummary is the list shape of a ContactFlowModule.

type ContactFlowSummary

type ContactFlowSummary struct {
	Arn               string `json:"Arn"`
	ContactFlowState  string `json:"ContactFlowState"`
	ContactFlowStatus string `json:"ContactFlowStatus"`
	ContactFlowType   string `json:"ContactFlowType"`
	ID                string `json:"Id"`
	Name              string `json:"Name"`
}

ContactFlowSummary is the list shape of a ContactFlow.

type ContactPathInput

type ContactPathInput struct {
	ContactID string `json:"-" path:"ContactId"`

	TagKeys []string `json:"-"                  query:"TagKeys"`
	// contains filtered or unexported fields
}

ContactPathInput addresses one contact by path.

type ContactQueueInfo

type ContactQueueInfo struct {
	EnqueueTimestamp *awstime.EpochTime `json:"EnqueueTimestamp,omitempty"`
	ID               string             `json:"Id,omitempty"`
}

ContactQueueInfo records when a contact entered a queue.

type ContactRefInput

type ContactRefInput struct {
	UserInfo *struct {
		UserID string `json:"UserId"`
	}
	Description      *string
	Tags             map[string]string
	CustomerEndpoint *EndpointInfo
	SystemEndpoint   *EndpointInfo
	QueueInfo        *struct {
		ID string `json:"Id"`
	}
	DisconnectReason *struct {
		Code string `json:"Code"`
	}
	Name              *string
	Attributes        map[string]string
	ContactID         string `json:"ContactId"        path:"ContactId"`
	InstanceID        string `json:"InstanceId"       path:"InstanceId"`
	InitialContactID  string `json:"InitialContactId"`
	SegmentAttributes json.RawMessage
	References        json.RawMessage
}

ContactRefInput addresses one contact in body-addressed contact operations.

type ContactSearchCriteria

type ContactSearchCriteria struct {
	SearchableContactAttributes *SearchableAttributes `json:"SearchableContactAttributes"`
	Name                        *NameCriteria         `json:"Name"`
	AgentIDs                    []string              `json:"AgentIds"`
	Channels                    []string              `json:"Channels"`
	InitiationMethods           []string              `json:"InitiationMethods"`
	QueueIDs                    []string              `json:"QueueIds"`
}

ContactSearchCriteria is the supported subset of SearchCriteria; other members are rejected.

type ContactSearchSummary

type ContactSearchSummary struct {
	InitiationTimestamp *awstime.EpochTime `json:"InitiationTimestamp,omitempty"`
	DisconnectTimestamp *awstime.EpochTime `json:"DisconnectTimestamp,omitempty"`
	ScheduledTimestamp  *awstime.EpochTime `json:"ScheduledTimestamp,omitempty"`
	QueueInfo           *ContactQueueInfo  `json:"QueueInfo,omitempty"`
	AgentInfo           *ContactAgentInfo  `json:"AgentInfo,omitempty"`
	Tags                map[string]string  `json:"Tags,omitempty"`
	ID                  string             `json:"Id"`
	Arn                 string             `json:"Arn"`
	Channel             string             `json:"Channel"`
	InitialContactID    string             `json:"InitialContactId"`
	InitiationMethod    string             `json:"InitiationMethod"`
	Name                string             `json:"Name,omitempty"`
	PreviousContactID   string             `json:"PreviousContactId,omitempty"`
	SegmentAttributes   json.RawMessage    `json:"SegmentAttributes,omitempty"`
}

ContactSearchSummary is the SearchContacts list shape of a contact.

type CreateAgentStatusInput

type CreateAgentStatusInput struct {
	DisplayOrder *int32
	Tags         map[string]string
	Name         string
	Description  string
	State        string
	// contains filtered or unexported fields
}

CreateAgentStatusInput is the CreateAgentStatus request.

type CreateContactFlowInput

type CreateContactFlowInput struct {
	Tags        map[string]string
	Content     string
	Name        string
	Description string
	Type        string
	Status      string
	// contains filtered or unexported fields
}

CreateContactFlowInput is the CreateContactFlow request.

type CreateContactFlowModuleInput

type CreateContactFlowModuleInput struct {
	Tags        map[string]string
	Content     string
	Name        string
	Description string
	Settings    string
	ClientToken string

	ExternalInvocationConfiguration json.RawMessage
	// contains filtered or unexported fields
}

CreateContactFlowModuleInput is the CreateContactFlowModule request.

type CreateHoursOfOperationInput

type CreateHoursOfOperationInput struct {
	Tags        map[string]string
	Name        string
	Description string
	TimeZone    string

	Config []HoursOfOperationConfig
	// contains filtered or unexported fields
}

CreateHoursOfOperationInput is the CreateHoursOfOperation request.

type CreateInstanceInput

type CreateInstanceInput struct {
	InboundCallsEnabled    *bool
	OutboundCallsEnabled   *bool
	Tags                   map[string]string
	IdentityManagementType string
	InstanceAlias          string
	DirectoryID            string `json:"DirectoryId"`
	ClientToken            string
}

CreateInstanceInput is the CreateInstance request body.

type CreateIntegrationAssociationInput

type CreateIntegrationAssociationInput struct {
	Tags                  map[string]string
	IntegrationArn        string
	IntegrationType       string
	SourceApplicationName string
	SourceApplicationURL  string `json:"SourceApplicationUrl"`
	SourceType            string
	// contains filtered or unexported fields
}

CreateIntegrationAssociationInput is the CreateIntegrationAssociation request.

type CreatePromptInput

type CreatePromptInput struct {
	Tags        map[string]string
	Name        string
	Description string
	S3URI       string `json:"S3Uri"`
	// contains filtered or unexported fields
}

CreatePromptInput is the CreatePrompt request.

type CreateQueueInput

type CreateQueueInput struct {
	MaxContacts          *int32
	OutboundCallerConfig *OutboundCallerConfig
	OutboundEmailConfig  *OutboundEmailConfig
	Tags                 map[string]string
	Name                 string
	Description          string
	HoursOfOperationID   string `json:"HoursOfOperationId"`

	QuickConnectIDs []string `json:"QuickConnectIds"`
	// contains filtered or unexported fields
}

CreateQueueInput is the CreateQueue request.

type CreateQuickConnectInput

type CreateQuickConnectInput struct {
	Tags        map[string]string
	Name        string
	Description string

	QuickConnectConfig QuickConnectConfig
	// contains filtered or unexported fields
}

CreateQuickConnectInput is the CreateQuickConnect request.

type CreateRoutingProfileInput

type CreateRoutingProfileInput struct {
	Tags                   map[string]string
	Name                   string
	Description            string
	DefaultOutboundQueueID string `json:"DefaultOutboundQueueId"`
	AgentAvailabilityTimer string

	MediaConcurrencies     []MediaConcurrency
	QueueConfigs           []RoutingProfileQueueConfig
	ManualAssignmentQueues []RoutingProfileQueueConfig `json:"ManualAssignmentQueueConfigs"`
	// contains filtered or unexported fields
}

CreateRoutingProfileInput is the CreateRoutingProfile request.

type CreateSecurityProfileInput

type CreateSecurityProfileInput struct {
	AllowedAccessControlTags map[string]string
	Tags                     map[string]string
	SecurityProfileName      string

	AllowedAccessControlHierarchyGroupID string `json:"AllowedAccessControlHierarchyGroupId"`
	Description                          string
	AllowedAIAgents                      json.RawMessage
	Applications                         json.RawMessage
	AllowedFlowModules                   json.RawMessage
	HierarchyRestrictedResources         []string
	Permissions                          []string
	TagRestrictedResources               []string
	GranularAccessControlConfiguration   json.RawMessage
	// contains filtered or unexported fields
}

CreateSecurityProfileInput is the CreateSecurityProfile request.

type CreateUseCaseInput

type CreateUseCaseInput struct {
	Tags          map[string]string
	UseCaseType   string
	AssociationID string `json:"-" path:"IntegrationAssociationId"`
	// contains filtered or unexported fields
}

CreateUseCaseInput is the CreateUseCase request.

type CreateUserHierarchyGroupInput

type CreateUserHierarchyGroupInput struct {
	Tags          map[string]string
	Name          string
	ParentGroupID string `json:"ParentGroupId"`
	// contains filtered or unexported fields
}

CreateUserHierarchyGroupInput is the CreateUserHierarchyGroup request.

type CreateUserInput

type CreateUserInput struct {
	PhoneConfig  *UserPhoneConfig
	Tags         map[string]string
	IdentityInfo *UserIdentityInfo
	Password     string

	RoutingProfileID            string `json:"RoutingProfileId"`
	HierarchyGroupID            string `json:"HierarchyGroupId"`
	DirectoryUserID             string `json:"DirectoryUserId"`
	Username                    string
	AfterContactWorkConfigs     json.RawMessage
	VoiceEnhancementConfigs     json.RawMessage
	PhoneNumberConfigs          json.RawMessage
	PersistentConnectionConfigs json.RawMessage
	SecurityProfileIDs          []string `json:"SecurityProfileIds"`
	AutoAcceptConfigs           json.RawMessage
	// contains filtered or unexported fields
}

CreateUserInput is the CreateUser request.

type CurrentMetric

type CurrentMetric struct {
	Name string `json:"Name"`
	Unit string `json:"Unit"`
}

CurrentMetric names one real-time metric.

type CurrentMetricData

type CurrentMetricData struct {
	Metric CurrentMetric `json:"Metric"`
	Value  float64       `json:"Value"`
}

CurrentMetricData is one real-time metric value.

type CurrentMetricResult

type CurrentMetricResult struct {
	Dimensions  *Dimensions         `json:"Dimensions,omitempty"`
	Collections []CurrentMetricData `json:"Collections"`
}

CurrentMetricResult is the metrics of one group.

type CurrentMetricSort

type CurrentMetricSort struct {
	SortByMetric string `json:"SortByMetric"`
	SortOrder    string `json:"SortOrder"`
}

CurrentMetricSort orders metric results.

type Dimensions

type Dimensions struct {
	Queue          *Reference `json:"Queue,omitempty"`
	RoutingProfile *Reference `json:"RoutingProfile,omitempty"`
	AgentStatus    *Reference `json:"AgentStatus,omitempty"`
	Channel        string     `json:"Channel,omitempty"`
}

Dimensions identifies one metric group.

type EncryptionConfig

type EncryptionConfig struct {
	EncryptionType string `json:"EncryptionType"`
	KeyID          string `json:"KeyId"`
}

EncryptionConfig names the KMS key protecting stored data.

type EndpointInfo

type EndpointInfo struct {
	Address string `json:"Address,omitempty"`
	Type    string `json:"Type,omitempty"`
}

EndpointInfo is a customer or system endpoint of a contact.

type GetCurrentMetricDataInput

type GetCurrentMetricDataInput struct {
	Filters   *MetricFilters
	NextToken string

	CurrentMetrics []CurrentMetric
	Groupings      []string
	SortCriteria   []CurrentMetricSort
	MaxResults     int32
	// contains filtered or unexported fields
}

GetCurrentMetricDataInput is the GetCurrentMetricData request.

type GetCurrentUserDataInput

type GetCurrentUserDataInput struct {
	Filters   *UserDataFilters
	NextToken string

	MaxResults int32
	// contains filtered or unexported fields
}

GetCurrentUserDataInput is the GetCurrentUserData request.

type GetMetricDataInput

type GetMetricDataInput struct {
	StartTime *awstime.EpochTime
	EndTime   *awstime.EpochTime
	Filters   *MetricFilters
	NextToken string

	HistoricalMetrics []HistoricalMetric
	Groupings         []string
	MaxResults        int32
	// contains filtered or unexported fields
}

GetMetricDataInput is the GetMetricData request.

type Handler

type Handler struct {
	Backend *Backend

	DefaultRegion string
	// contains filtered or unexported fields
}

Handler serves the Amazon Connect REST-JSON API.

func NewHandler

func NewHandler(backend *Backend) *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 instance ID 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 claims requests signed for connect under a Connect URI prefix, so unrouted operations fail as unknown.

func (*Handler) Snapshot

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

Snapshot implements persistence.Persistable.

type HierarchyGroup

type HierarchyGroup struct {
	Stamp
	HierarchyPath *HierarchyPath    `json:"HierarchyPath,omitempty"`
	Tags          map[string]string `json:"Tags,omitempty"`
	Arn           string            `json:"Arn"`
	ID            string            `json:"Id"`
	LevelID       string            `json:"LevelId"`
	Name          string            `json:"Name"`
}

HierarchyGroup is a node of the agent hierarchy.

type HierarchyGroupSummary

type HierarchyGroupSummary struct {
	Arn  string `json:"Arn"`
	ID   string `json:"Id"`
	Name string `json:"Name"`
}

HierarchyGroupSummary names a hierarchy group.

type HierarchyLevel

type HierarchyLevel struct {
	Stamp
	Arn  string `json:"Arn"`
	ID   string `json:"Id"`
	Name string `json:"Name"`
}

HierarchyLevel is one named level of the hierarchy structure.

type HierarchyLevelUpdate

type HierarchyLevelUpdate struct {
	Name string `json:"Name"`
}

HierarchyLevelUpdate carries a level's new name.

type HierarchyPath

type HierarchyPath struct {
	LevelOne   *HierarchyGroupSummary `json:"LevelOne,omitempty"`
	LevelTwo   *HierarchyGroupSummary `json:"LevelTwo,omitempty"`
	LevelThree *HierarchyGroupSummary `json:"LevelThree,omitempty"`
	LevelFour  *HierarchyGroupSummary `json:"LevelFour,omitempty"`
	LevelFive  *HierarchyGroupSummary `json:"LevelFive,omitempty"`
}

HierarchyPath is the chain of groups above (and including) a group.

type HierarchyStructure

type HierarchyStructure struct {
	LevelOne   *HierarchyLevel `json:"LevelOne,omitempty"`
	LevelTwo   *HierarchyLevel `json:"LevelTwo,omitempty"`
	LevelThree *HierarchyLevel `json:"LevelThree,omitempty"`
	LevelFour  *HierarchyLevel `json:"LevelFour,omitempty"`
	LevelFive  *HierarchyLevel `json:"LevelFive,omitempty"`
}

HierarchyStructure names the levels of the agent hierarchy.

type HierarchyStructureUpdate

type HierarchyStructureUpdate struct {
	LevelOne   *HierarchyLevelUpdate `json:"LevelOne,omitempty"`
	LevelTwo   *HierarchyLevelUpdate `json:"LevelTwo,omitempty"`
	LevelThree *HierarchyLevelUpdate `json:"LevelThree,omitempty"`
	LevelFour  *HierarchyLevelUpdate `json:"LevelFour,omitempty"`
	LevelFive  *HierarchyLevelUpdate `json:"LevelFive,omitempty"`
}

HierarchyStructureUpdate renames hierarchy levels; an absent level is untouched.

type HistoricalMetric

type HistoricalMetric struct {
	Name      string          `json:"Name"`
	Statistic string          `json:"Statistic"`
	Unit      string          `json:"Unit"`
	Threshold json.RawMessage `json:"Threshold,omitempty"`
}

HistoricalMetric names one historical metric and statistic.

type HistoricalMetricData

type HistoricalMetricData struct {
	Metric HistoricalMetric `json:"Metric"`
	Value  float64          `json:"Value"`
}

HistoricalMetricData is one historical metric value.

type HistoricalMetricResult

type HistoricalMetricResult struct {
	Dimensions  *Dimensions            `json:"Dimensions,omitempty"`
	Collections []HistoricalMetricData `json:"Collections"`
}

HistoricalMetricResult is the metrics of one group.

type HoursOfOperation

type HoursOfOperation struct {
	Stamp
	Tags                map[string]string        `json:"Tags,omitempty"`
	Description         string                   `json:"Description,omitempty"`
	HoursOfOperationArn string                   `json:"HoursOfOperationArn"`
	HoursOfOperationID  string                   `json:"HoursOfOperationId"`
	Name                string                   `json:"Name"`
	TimeZone            string                   `json:"TimeZone"`
	Config              []HoursOfOperationConfig `json:"Config"`
}

HoursOfOperation is a weekly schedule.

type HoursOfOperationConfig

type HoursOfOperationConfig struct {
	Day       string    `json:"Day"`
	EndTime   TimeSlice `json:"EndTime"`
	StartTime TimeSlice `json:"StartTime"`
}

HoursOfOperationConfig is the open window of one day.

type Instance

type Instance struct {
	CreatedTime            awstime.EpochTime `json:"CreatedTime"`
	Tags                   map[string]string `json:"Tags,omitempty"`
	Arn                    string            `json:"Arn"`
	ID                     string            `json:"Id"`
	IdentityManagementType string            `json:"IdentityManagementType"`
	InstanceAccessURL      string            `json:"InstanceAccessUrl,omitempty"`
	InstanceAlias          string            `json:"InstanceAlias,omitempty"`
	InstanceStatus         string            `json:"InstanceStatus"`
	ServiceRole            string            `json:"ServiceRole,omitempty"`
	InboundCallsEnabled    bool              `json:"InboundCallsEnabled"`
	OutboundCallsEnabled   bool              `json:"OutboundCallsEnabled"`
}

Instance is an Amazon Connect instance.

type InstanceStorageConfig

type InstanceStorageConfig struct {
	S3Config                 *S3Config                 `json:"S3Config,omitempty"`
	KinesisVideoStreamConfig *KinesisVideoStreamConfig `json:"KinesisVideoStreamConfig,omitempty"`
	KinesisStreamConfig      *KinesisStreamConfig      `json:"KinesisStreamConfig,omitempty"`
	KinesisFirehoseConfig    *KinesisFirehoseConfig    `json:"KinesisFirehoseConfig,omitempty"`
	AssociationID            string                    `json:"AssociationId"`
	StorageType              string                    `json:"StorageType"`
}

InstanceStorageConfig is where one kind of instance data is stored.

type InstanceSummary

type InstanceSummary struct {
	CreatedTime            awstime.EpochTime `json:"CreatedTime"`
	Arn                    string            `json:"Arn"`
	ID                     string            `json:"Id"`
	IdentityManagementType string            `json:"IdentityManagementType"`
	InstanceAccessURL      string            `json:"InstanceAccessUrl,omitempty"`
	InstanceAlias          string            `json:"InstanceAlias,omitempty"`
	InstanceStatus         string            `json:"InstanceStatus"`
	ServiceRole            string            `json:"ServiceRole,omitempty"`
	InboundCallsEnabled    bool              `json:"InboundCallsEnabled"`
	OutboundCallsEnabled   bool              `json:"OutboundCallsEnabled"`
}

InstanceSummary is the list shape of an Instance.

type IntegrationAssociation

type IntegrationAssociation struct {
	InstanceID                string `json:"InstanceId"`
	IntegrationArn            string `json:"IntegrationArn"`
	IntegrationAssociationArn string `json:"IntegrationAssociationArn"`
	IntegrationAssociationID  string `json:"IntegrationAssociationId"`
	IntegrationType           string `json:"IntegrationType"`
	SourceApplicationName     string `json:"SourceApplicationName,omitempty"`
	SourceApplicationURL      string `json:"SourceApplicationUrl,omitempty"`
	SourceType                string `json:"SourceType,omitempty"`
}

IntegrationAssociation links an instance to an integration such as an AppIntegrations event.

type Integrations

type Integrations interface {
	CreateEventAssociation(ctx context.Context, eventIntegrationName, clientID string) (string, error)
	DeleteEventAssociation(ctx context.Context, associationID string) error
	CreateApplicationAssociation(ctx context.Context, applicationID, clientID string) (string, error)
	DeleteApplicationAssociation(ctx context.Context, associationID string) error
}

Integrations is the AppIntegrations surface behind EVENT and APPLICATION integration associations.

type KinesisFirehoseConfig

type KinesisFirehoseConfig struct {
	FirehoseArn string `json:"FirehoseArn"`
}

KinesisFirehoseConfig is a Firehose storage target.

type KinesisStreamConfig

type KinesisStreamConfig struct {
	StreamArn string `json:"StreamArn"`
}

KinesisStreamConfig is a Kinesis Data Streams storage target.

type KinesisVideoStreamConfig

type KinesisVideoStreamConfig struct {
	EncryptionConfig     *EncryptionConfig `json:"EncryptionConfig,omitempty"`
	Prefix               string            `json:"Prefix"`
	RetentionPeriodHours int32             `json:"RetentionPeriodHours"`
}

KinesisVideoStreamConfig is a Kinesis Video Streams storage target.

type LexBot

type LexBot struct {
	LexRegion string `json:"LexRegion"`
	Name      string `json:"Name"`
}

LexBot is a Lex V1 bot reference.

type LexBotConfig

type LexBotConfig struct {
	LexBot   *LexBot   `json:"LexBot,omitempty"`
	LexV2Bot *LexV2Bot `json:"LexV2Bot,omitempty"`
}

LexBotConfig is a Lex V1 or V2 bot association.

type LexV2Bot

type LexV2Bot struct {
	AliasArn string `json:"AliasArn"`
}

LexV2Bot is a Lex V2 bot alias reference.

type ListPhoneNumbersSummary

type ListPhoneNumbersSummary struct {
	InstanceID             string `json:"InstanceId,omitempty"`
	PhoneNumber            string `json:"PhoneNumber"`
	PhoneNumberArn         string `json:"PhoneNumberArn"`
	PhoneNumberCountryCode string `json:"PhoneNumberCountryCode"`
	PhoneNumberDescription string `json:"PhoneNumberDescription,omitempty"`
	PhoneNumberID          string `json:"PhoneNumberId"`
	PhoneNumberType        string `json:"PhoneNumberType"`
	TargetArn              string `json:"TargetArn,omitempty"`
}

ListPhoneNumbersSummary is the V2 list shape of a phone number.

type ListPhoneNumbersV2Input

type ListPhoneNumbersV2Input struct {
	TargetArn               string
	InstanceID              string `json:"InstanceId"`
	PhoneNumberPrefix       string
	NextToken               string
	PhoneNumberCountryCodes []string
	PhoneNumberTypes        []string
	MaxResults              int32
}

ListPhoneNumbersV2Input is the ListPhoneNumbersV2 request.

type MediaConcurrency

type MediaConcurrency struct {
	Channel                   string          `json:"Channel"`
	CrossChannelBehavior      json.RawMessage `json:"CrossChannelBehavior,omitempty"`
	WorkloadTypeConcurrencies json.RawMessage `json:"WorkloadTypeConcurrencies,omitempty"`
	Concurrency               int32           `json:"Concurrency"`
}

MediaConcurrency limits concurrent contacts of one channel.

type MetricFilters

type MetricFilters struct {
	Queues          []string `json:"Queues"`
	Channels        []string `json:"Channels"`
	RoutingProfiles []string `json:"RoutingProfiles"`
	AgentStatuses   []string `json:"AgentStatuses"`
	Other           []string `json:"-"`
	Unsupported     []string `json:"RoutingStepExpressions"`
	Subtypes        []string `json:"Subtypes"`
	ValidationTests []string `json:"ValidationTestTypes"`
}

MetricFilters narrows metric data; unsupported filters are rejected.

type NameCriteria

type NameCriteria struct {
	MatchType  string   `json:"MatchType"`
	SearchText []string `json:"SearchText"`
}

NameCriteria matches contact names.

type OutboundCallerConfig

type OutboundCallerConfig struct {
	OutboundCallerIDName     string `json:"OutboundCallerIdName,omitempty"`
	OutboundCallerIDNumberID string `json:"OutboundCallerIdNumberId,omitempty"`
	OutboundFlowID           string `json:"OutboundFlowId,omitempty"`
}

OutboundCallerConfig sets caller ID for outbound calls from a queue.

type OutboundEmailConfig

type OutboundEmailConfig struct {
	OutboundEmailAddressID string `json:"OutboundEmailAddressId,omitempty"`
}

OutboundEmailConfig sets the from address of outbound email from a queue.

type ParticipantDetails

type ParticipantDetails struct {
	DisplayName string `json:"DisplayName"`
}

ParticipantDetails names a chat participant.

type PersistentChat

type PersistentChat struct {
	RehydrationType string `json:"RehydrationType"`
	SourceContactID string `json:"SourceContactId"`
}

PersistentChat continues an earlier chat.

type PhoneFlowInput

type PhoneFlowInput struct {
	ContactFlowID   string `json:"ContactFlowId"`
	InstanceID      string `json:"InstanceId"`
	InstanceIDQuery string `json:"-"             query:"instanceId"`
	PhoneNumberID   string `json:"-"                                path:"PhoneNumberId"`
}

PhoneFlowInput is the (Dis)AssociatePhoneNumberContactFlow request.

type PhoneNumberStatus

type PhoneNumberStatus struct {
	Message string `json:"Message,omitempty"`
	Status  string `json:"Status"`
}

PhoneNumberStatus is the claim workflow state of a phone number.

type PhoneNumberSummary

type PhoneNumberSummary struct {
	Arn                    string `json:"Arn"`
	ID                     string `json:"Id"`
	PhoneNumber            string `json:"PhoneNumber"`
	PhoneNumberCountryCode string `json:"PhoneNumberCountryCode"`
	PhoneNumberType        string `json:"PhoneNumberType"`
}

PhoneNumberSummary is the instance-scoped list shape of a phone number.

type Prompt

type Prompt struct {
	Stamp
	Tags        map[string]string `json:"Tags,omitempty"`
	Description string            `json:"Description,omitempty"`
	Name        string            `json:"Name"`
	PromptARN   string            `json:"PromptARN"`
	PromptID    string            `json:"PromptId"`
}

Prompt is an audio prompt.

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 Queue

type Queue struct {
	Stamp
	OutboundCallerConfig *OutboundCallerConfig `json:"OutboundCallerConfig,omitempty"`
	OutboundEmailConfig  *OutboundEmailConfig  `json:"OutboundEmailConfig,omitempty"`
	MaxContacts          *int32                `json:"MaxContacts,omitempty"`
	Tags                 map[string]string     `json:"Tags,omitempty"`
	Description          string                `json:"Description,omitempty"`
	HoursOfOperationID   string                `json:"HoursOfOperationId"`
	Name                 string                `json:"Name"`
	QueueArn             string                `json:"QueueArn"`
	QueueID              string                `json:"QueueId"`
	Status               string                `json:"Status"`
}

Queue holds contacts waiting for agents.

type QueueReference

type QueueReference struct {
	QueueID string `json:"QueueId"`
	Channel string `json:"Channel"`
}

QueueReference names a queue and channel in a routing profile.

type QueueSummary

type QueueSummary struct {
	Stamp
	Arn       string `json:"Arn"`
	ID        string `json:"Id"`
	Name      string `json:"Name"`
	QueueType string `json:"QueueType"`
}

QueueSummary is the list shape of a Queue.

type QuickConnect

type QuickConnect struct {
	Tags map[string]string `json:"Tags,omitempty"`
	Stamp
	Description        string             `json:"Description,omitempty"`
	Name               string             `json:"Name"`
	QuickConnectARN    string             `json:"QuickConnectARN"`
	QuickConnectID     string             `json:"QuickConnectId"`
	QuickConnectConfig QuickConnectConfig `json:"QuickConnectConfig"`
}

QuickConnect is a saved transfer destination.

type QuickConnectConfig

type QuickConnectConfig struct {
	PhoneConfig *struct {
		PhoneNumber string `json:"PhoneNumber"`
	} `json:"PhoneConfig,omitempty"`
	QueueConfig *struct {
		ContactFlowID string `json:"ContactFlowId"`
		QueueID       string `json:"QueueId"`
	} `json:"QueueConfig,omitempty"`
	UserConfig *struct {
		ContactFlowID string `json:"ContactFlowId"`
		UserID        string `json:"UserId"`
	} `json:"UserConfig,omitempty"`
	QuickConnectType string          `json:"QuickConnectType"`
	FlowConfig       json.RawMessage `json:"FlowConfig,omitempty"`
}

QuickConnectConfig is what a quick connect transfers to.

type QuickConnectIDsInput

type QuickConnectIDsInput struct {
	QueueID string `json:"-"               path:"QueueId"`

	QuickConnectIDs []string `json:"QuickConnectIds"`
	// contains filtered or unexported fields
}

QuickConnectIDsInput is the (Dis)AssociateQueueQuickConnects request.

type QuickConnectSummary

type QuickConnectSummary struct {
	Stamp
	Arn              string `json:"Arn"`
	ID               string `json:"Id"`
	Name             string `json:"Name"`
	QuickConnectType string `json:"QuickConnectType"`
}

QuickConnectSummary is the list shape of a QuickConnect.

type Reference

type Reference struct {
	Arn string `json:"Arn,omitempty"`
	ID  string `json:"Id,omitempty"`
}

Reference names a resource by ID and ARN.

type Resolvers

type Resolvers interface {
	LambdaFunctionExists(ctx context.Context, functionARN string) bool
	BucketExists(ctx context.Context, bucket string) bool
	ObjectExists(ctx context.Context, bucket, key string) bool
}

Resolvers lets Connect validate references to resources of sibling services.

type RoutingProfile

type RoutingProfile struct {
	Stamp
	Tags                                     map[string]string  `json:"Tags,omitempty"`
	AgentAvailabilityTimer                   string             `json:"AgentAvailabilityTimer,omitempty"`
	DefaultOutboundQueueID                   string             `json:"DefaultOutboundQueueId"`
	Description                              string             `json:"Description,omitempty"`
	InstanceID                               string             `json:"InstanceId"`
	Name                                     string             `json:"Name"`
	RoutingProfileArn                        string             `json:"RoutingProfileArn"`
	RoutingProfileID                         string             `json:"RoutingProfileId"`
	MediaConcurrencies                       []MediaConcurrency `json:"MediaConcurrencies"`
	AssociatedQueueIDs                       []string           `json:"AssociatedQueueIds,omitempty"`
	AssociatedManualAssignmentQueueIDs       []string           `json:"AssociatedManualAssignmentQueueIds,omitempty"`
	NumberOfAssociatedQueues                 int64              `json:"NumberOfAssociatedQueues"`
	NumberOfAssociatedUsers                  int64              `json:"NumberOfAssociatedUsers"`
	NumberOfAssociatedManualAssignmentQueues int64              `json:"NumberOfAssociatedManualAssignmentQueues"`
	IsDefault                                bool               `json:"IsDefault"`
}

RoutingProfile routes contacts to agents.

type RoutingProfileQueueConfig

type RoutingProfileQueueConfig struct {
	QueueReference QueueReference `json:"QueueReference"`
	Delay          int32          `json:"Delay"`
	Priority       int32          `json:"Priority"`
}

RoutingProfileQueueConfig places a queue in a routing profile.

type RoutingProfileQueueConfigSummary

type RoutingProfileQueueConfigSummary struct {
	QueueArn  string `json:"QueueArn"`
	QueueID   string `json:"QueueId"`
	QueueName string `json:"QueueName"`
	Channel   string `json:"Channel"`
	Delay     int32  `json:"Delay"`
	Priority  int32  `json:"Priority"`
}

RoutingProfileQueueConfigSummary is the list shape of a RoutingProfileQueueConfig.

type S3Config

type S3Config struct {
	EncryptionConfig *EncryptionConfig `json:"EncryptionConfig,omitempty"`
	BucketName       string            `json:"BucketName"`
	BucketPrefix     string            `json:"BucketPrefix"`
}

S3Config is an S3 storage target.

type SearchAvailablePhoneNumbersInput

type SearchAvailablePhoneNumbersInput struct {
	PhoneNumberCountryCode string
	PhoneNumberType        string
	PhoneNumberPrefix      string
	TargetArn              string
	InstanceID             string `json:"InstanceId"`
	NextToken              string
	MaxResults             int32
}

SearchAvailablePhoneNumbersInput is the SearchAvailablePhoneNumbers request.

type SearchContactsInput

type SearchContactsInput struct {
	Sort *struct {
		FieldName string `json:"FieldName"`
		Order     string `json:"Order"`
	}
	TimeRange      TimeRange
	InstanceID     string `json:"InstanceId"`
	NextToken      string
	SearchCriteria json.RawMessage
	MaxResults     int32
}

SearchContactsInput is the SearchContacts request.

type SearchableAttribute

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

SearchableAttribute matches contact attributes by key.

type SearchableAttributes

type SearchableAttributes struct {
	MatchType string                `json:"MatchType"`
	Criteria  []SearchableAttribute `json:"Criteria"`
}

SearchableAttributes combines attribute criteria.

type SecurityKey

type SecurityKey struct {
	CreationTime  awstime.EpochTime `json:"CreationTime"`
	AssociationID string            `json:"AssociationId"`
	Key           string            `json:"Key"`
}

SecurityKey is a public key an instance trusts.

type SecurityProfile

type SecurityProfile struct {
	Stamp
	AllowedAccessControlTags             map[string]string `json:"AllowedAccessControlTags,omitempty"`
	Tags                                 map[string]string `json:"Tags,omitempty"`
	GranularAccessControlConfiguration   json.RawMessage   `json:"GranularAccessControlConfiguration,omitempty"`
	AllowedAccessControlHierarchyGroupID string            `json:"AllowedAccessControlHierarchyGroupId,omitempty"`
	Arn                                  string            `json:"Arn"`
	Description                          string            `json:"Description,omitempty"`
	ID                                   string            `json:"Id"`
	SecurityProfileName                  string            `json:"SecurityProfileName"`
	HierarchyRestrictedResources         []string          `json:"HierarchyRestrictedResources,omitempty"`
	TagRestrictedResources               []string          `json:"TagRestrictedResources,omitempty"`
}

SecurityProfile grants permissions to users.

type Stamp

type Stamp struct {
	LastModifiedTime   *awstime.EpochTime `json:"LastModifiedTime,omitempty"`
	LastModifiedRegion string             `json:"LastModifiedRegion,omitempty"`
}

Stamp is the LastModified pair most Connect resources carry.

type StartChatContactInput

type StartChatContactInput struct {
	ParticipantDetails    *ParticipantDetails
	InitialMessage        *ChatMessage
	PersistentChat        *PersistentChat
	Attributes            map[string]string
	ChatDurationInMinutes *int32
	InstanceID            string `json:"InstanceId"`
	ContactFlowID         string `json:"ContactFlowId"`
	CustomerID            string `json:"CustomerId"`
	RelatedContactID      string `json:"RelatedContactId"`
	ClientToken           string
	SegmentAttributes     json.RawMessage
}

StartChatContactInput is the StartChatContact request.

type StartOutboundVoiceContactInput

type StartOutboundVoiceContactInput struct {
	RingTimeoutInSeconds   *int32
	Attributes             map[string]string
	DestinationPhoneNumber string
	InstanceID             string `json:"InstanceId"`
	ContactFlowID          string `json:"ContactFlowId"`
	SourcePhoneNumber      string
	QueueID                string `json:"QueueId"`
	CampaignID             string `json:"CampaignId"`
	Name                   string
	Description            string
	RelatedContactID       string `json:"RelatedContactId"`
	ClientToken            string
	OutboundStrategy       json.RawMessage
	References             json.RawMessage
}

StartOutboundVoiceContactInput is the StartOutboundVoiceContact request.

type StartTaskContactInput

type StartTaskContactInput struct {
	ScheduledTime     *awstime.EpochTime
	Attributes        map[string]string
	PreviousContactID string `json:"PreviousContactId"`
	InstanceID        string `json:"InstanceId"`
	Name              string
	Description       string
	ContactFlowID     string `json:"ContactFlowId"`
	RelatedContactID  string `json:"RelatedContactId"`
	QuickConnectID    string `json:"QuickConnectId"`
	TaskTemplateID    string `json:"TaskTemplateId"`
	ClientToken       string
	SegmentAttributes json.RawMessage
	Attachments       json.RawMessage
	References        json.RawMessage
}

StartTaskContactInput is the StartTaskContact request.

type StorageAssociation

type StorageAssociation struct {
	InstanceStorageConfig
	ResourceType string `json:"ResourceType"`
}

StorageAssociation is a storage config together with its resource type.

type Summary

type Summary struct {
	Stamp
	Arn  string `json:"Arn"`
	ID   string `json:"Id"`
	Name string `json:"Name"`
}

Summary is the list shape shared by most resources.

type TimeRange

type TimeRange struct {
	StartTime *awstime.EpochTime `json:"StartTime"`
	EndTime   *awstime.EpochTime `json:"EndTime"`
	Type      string             `json:"Type"`
}

TimeRange bounds a contact search.

type TimeSlice

type TimeSlice struct {
	Hours   int32 `json:"Hours"`
	Minutes int32 `json:"Minutes"`
}

TimeSlice is an hour and minute of day.

type UpdateAgentStatusInput

type UpdateAgentStatusInput struct {
	DisplayOrder  *int32
	Name          *string
	Description   *string
	State         *string
	AgentStatusID string `json:"-" path:"AgentStatusId"`

	ResetOrderNumber bool
	// contains filtered or unexported fields
}

UpdateAgentStatusInput is the UpdateAgentStatus request.

type UpdateContactFlowInput

type UpdateContactFlowInput struct {
	Content          *string
	Name             *string
	Description      *string
	ContactFlowState *string
	FlowID           string `json:"-" path:"ContactFlowId"`
	// contains filtered or unexported fields
}

UpdateContactFlowInput carries the contact flow update requests; each op reads only its own members.

type UpdateContactFlowModuleInput

type UpdateContactFlowModuleInput struct {
	Content     *string
	Settings    *string
	Name        *string
	Description *string
	State       *string
	ModuleID    string `json:"-" path:"ContactFlowModuleId"`
	// contains filtered or unexported fields
}

UpdateContactFlowModuleInput carries the flow module update requests; each op reads only its own members.

type UpdateHierarchyGroupNameInput

type UpdateHierarchyGroupNameInput struct {
	Name    string
	GroupID string `json:"-" path:"HierarchyGroupId"`
	// contains filtered or unexported fields
}

UpdateHierarchyGroupNameInput is the UpdateUserHierarchyGroupName request.

type UpdateHierarchyStructureInput

type UpdateHierarchyStructureInput struct {
	HierarchyStructure HierarchyStructureUpdate
	// contains filtered or unexported fields
}

UpdateHierarchyStructureInput is the UpdateUserHierarchyStructure request.

type UpdateHoursOfOperationInput

type UpdateHoursOfOperationInput struct {
	Name        *string
	Description *string
	TimeZone    *string
	HoursID     string `json:"-" path:"HoursOfOperationId"`

	Config []HoursOfOperationConfig
	// contains filtered or unexported fields
}

UpdateHoursOfOperationInput is the UpdateHoursOfOperation request.

type UpdatePhoneNumberInput

type UpdatePhoneNumberInput struct {
	TargetArn              string
	InstanceID             string `json:"InstanceId"`
	PhoneNumberDescription *string
	ClientToken            string
	PhoneNumberID          string `json:"-"          path:"PhoneNumberId"`
}

UpdatePhoneNumberInput is the UpdatePhoneNumber and UpdatePhoneNumberMetadata request.

type UpdatePromptInput

type UpdatePromptInput struct {
	Name        *string
	Description *string
	S3URI       *string `json:"S3Uri"`
	PromptID    string  `json:"-"     path:"PromptId"`
	// contains filtered or unexported fields
}

UpdatePromptInput is the UpdatePrompt request.

type UpdateQueueInput

type UpdateQueueInput struct {
	MaxContacts          *int32
	OutboundCallerConfig *OutboundCallerConfig
	OutboundEmailConfig  *OutboundEmailConfig
	Name                 *string
	Description          *string
	HoursOfOperationID   *string `json:"HoursOfOperationId"`
	Status               *string
	QueueID              string `json:"-"                  path:"QueueId"`
	// contains filtered or unexported fields
}

UpdateQueueInput carries the single-field queue update requests; each op sets only its own members.

type UpdateQuickConnectInput

type UpdateQuickConnectInput struct {
	Name               *string
	Description        *string
	QuickConnectConfig *QuickConnectConfig
	QuickConnectID     string `json:"-" path:"QuickConnectId"`
	// contains filtered or unexported fields
}

UpdateQuickConnectInput is the UpdateQuickConnectName and UpdateQuickConnectConfig request.

type UpdateRoutingProfileInput

type UpdateRoutingProfileInput struct {
	Name                   *string
	Description            *string
	DefaultOutboundQueueID *string `json:"DefaultOutboundQueueId"`
	AgentAvailabilityTimer *string
	ProfileID              string `json:"-"                               path:"RoutingProfileId"`

	MediaConcurrencies     []MediaConcurrency
	QueueConfigs           []RoutingProfileQueueConfig
	ManualAssignmentQueues []RoutingProfileQueueConfig `json:"ManualAssignmentQueueConfigs"`
	QueueReferences        []QueueReference
	ManualReferences       []QueueReference `json:"ManualAssignmentQueueReferences"`
	// contains filtered or unexported fields
}

UpdateRoutingProfileInput carries the routing profile update requests; each op reads only its own members.

type UpdateSecurityProfileInput

type UpdateSecurityProfileInput struct {
	AllowedAccessControlTags             map[string]string
	Description                          *string
	AllowedAccessControlHierarchyGroupID *string `json:"AllowedAccessControlHierarchyGroupId"`
	ProfileID                            string  `json:"-"                                    path:"SecurityProfileId"`

	GranularAccessControlConfiguration json.RawMessage
	AllowedAIAgents                    json.RawMessage
	AllowedFlowModules                 json.RawMessage
	Applications                       json.RawMessage
	HierarchyRestrictedResources       []string
	Permissions                        []string
	TagRestrictedResources             []string
	// contains filtered or unexported fields
}

UpdateSecurityProfileInput is the UpdateSecurityProfile request.

type UpdateUserInput

type UpdateUserInput struct {
	IdentityInfo     *UserIdentityInfo
	PhoneConfig      *UserPhoneConfig
	HierarchyGroupID string `json:"HierarchyGroupId"`
	RoutingProfileID string `json:"RoutingProfileId"`
	AgentStatusID    string `json:"AgentStatusId"`
	UserID           string `json:"-"                  path:"UserId"`

	SecurityProfileIDs []string `json:"SecurityProfileIds"`
	// contains filtered or unexported fields
}

UpdateUserInput carries the user update requests; each op reads only its own members.

type UseCase

type UseCase struct {
	UseCaseArn  string `json:"UseCaseArn"`
	UseCaseID   string `json:"UseCaseId"`
	UseCaseType string `json:"UseCaseType"`
}

UseCase is a use case of an integration association.

type User

type User struct {
	Stamp
	IdentityInfo                *UserIdentityInfo `json:"IdentityInfo,omitempty"`
	PhoneConfig                 *UserPhoneConfig  `json:"PhoneConfig,omitempty"`
	Tags                        map[string]string `json:"Tags,omitempty"`
	Arn                         string            `json:"Arn"`
	DirectoryUserID             string            `json:"DirectoryUserId,omitempty"`
	HierarchyGroupID            string            `json:"HierarchyGroupId,omitempty"`
	ID                          string            `json:"Id"`
	RoutingProfileID            string            `json:"RoutingProfileId"`
	Username                    string            `json:"Username"`
	SecurityProfileIDs          []string          `json:"SecurityProfileIds"`
	AfterContactWorkConfigs     json.RawMessage   `json:"AfterContactWorkConfigs,omitempty"`
	AutoAcceptConfigs           json.RawMessage   `json:"AutoAcceptConfigs,omitempty"`
	PersistentConnectionConfigs json.RawMessage   `json:"PersistentConnectionConfigs,omitempty"`
	PhoneNumberConfigs          json.RawMessage   `json:"PhoneNumberConfigs,omitempty"`
	VoiceEnhancementConfigs     json.RawMessage   `json:"VoiceEnhancementConfigs,omitempty"`
}

User is an Amazon Connect agent or administrator.

type UserData

type UserData struct {
	User                    *Reference
	RoutingProfile          *Reference
	Status                  *AgentStatusReference
	HierarchyPath           *hierarchyPathRef
	ActiveSlotsByChannel    map[string]int32
	AvailableSlotsByChannel map[string]int32
	MaxSlotsByChannel       map[string]int32
	Contacts                []AgentContactReference
}

UserData is the real-time view of one agent.

type UserDataFilters

type UserDataFilters struct {
	ContactFilter *struct {
		ContactStates []string `json:"ContactStates"`
	} `json:"ContactFilter"`
	Agents              []string `json:"Agents"`
	Queues              []string `json:"Queues"`
	RoutingProfiles     []string `json:"RoutingProfiles"`
	UserHierarchyGroups []string `json:"UserHierarchyGroups"`
}

UserDataFilters selects the agents of GetCurrentUserData.

type UserIdentityInfo

type UserIdentityInfo struct {
	Email          string `json:"Email,omitempty"`
	FirstName      string `json:"FirstName,omitempty"`
	LastName       string `json:"LastName,omitempty"`
	Mobile         string `json:"Mobile,omitempty"`
	SecondaryEmail string `json:"SecondaryEmail,omitempty"`
}

UserIdentityInfo is a user's name and email.

type UserPhoneConfig

type UserPhoneConfig struct {
	PersistentConnection      *bool  `json:"PersistentConnection,omitempty"`
	DeskPhoneNumber           string `json:"DeskPhoneNumber,omitempty"`
	PhoneType                 string `json:"PhoneType"`
	AfterContactWorkTimeLimit int32  `json:"AfterContactWorkTimeLimit"`
	AutoAccept                bool   `json:"AutoAccept"`
}

UserPhoneConfig is how a user takes calls.

type UserSummary

type UserSummary struct {
	Stamp
	Arn      string `json:"Arn"`
	ID       string `json:"Id"`
	Username string `json:"Username"`
}

UserSummary is the list shape of a User.

Jump to

Keyboard shortcuts

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