File: api_op_SendChatIntegrationEvent.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.24.1-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 554,032 kB
  • sloc: java: 15,941; makefile: 419; sh: 175
file content (175 lines) | stat: -rw-r--r-- 5,768 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
// Code generated by smithy-go-codegen DO NOT EDIT.

package connect

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
	"github.com/aws/aws-sdk-go-v2/service/connect/types"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
)

// Processes chat integration events from Amazon Web Services or external
// integrations to Amazon Connect. A chat integration event includes:
//   - SourceId, DestinationId, and Subtype: a set of identifiers, uniquely
//     representing a chat
//   - ChatEvent: details of the chat action to perform such as sending a message,
//     event, or disconnecting from a chat
//
// When a chat integration event is sent with chat identifiers that do not map to
// an active chat contact, a new chat contact is also created before handling chat
// action. Access to this API is currently restricted to Amazon Pinpoint for
// supporting SMS integration.
func (c *Client) SendChatIntegrationEvent(ctx context.Context, params *SendChatIntegrationEventInput, optFns ...func(*Options)) (*SendChatIntegrationEventOutput, error) {
	if params == nil {
		params = &SendChatIntegrationEventInput{}
	}

	result, metadata, err := c.invokeOperation(ctx, "SendChatIntegrationEvent", params, optFns, c.addOperationSendChatIntegrationEventMiddlewares)
	if err != nil {
		return nil, err
	}

	out := result.(*SendChatIntegrationEventOutput)
	out.ResultMetadata = metadata
	return out, nil
}

type SendChatIntegrationEventInput struct {

	// Chat system identifier, used in part to uniquely identify chat. This is
	// associated with the Amazon Connect instance and flow to be used to start chats.
	// For SMS, this is the phone number destination of inbound SMS messages
	// represented by an Amazon Pinpoint phone number ARN.
	//
	// This member is required.
	DestinationId *string

	// Chat integration event payload
	//
	// This member is required.
	Event *types.ChatEvent

	// External identifier of chat customer participant, used in part to uniquely
	// identify a chat. For SMS, this is the E164 phone number of the chat customer
	// participant.
	//
	// This member is required.
	SourceId *string

	// Contact properties to apply when starting a new chat. If the integration event
	// is handled with an existing chat, this is ignored.
	NewSessionDetails *types.NewSessionDetails

	// Classification of a channel. This is used in part to uniquely identify chat.
	// Valid value: ["connect:sms"]
	Subtype *string

	noSmithyDocumentSerde
}

type SendChatIntegrationEventOutput struct {

	// Identifier of chat contact used to handle integration event. This may be null
	// if the integration event is not valid without an already existing chat contact.
	InitialContactId *string

	// Whether handling the integration event resulted in creating a new chat or
	// acting on existing chat.
	NewChatCreated *bool

	// Metadata pertaining to the operation's result.
	ResultMetadata middleware.Metadata

	noSmithyDocumentSerde
}

func (c *Client) addOperationSendChatIntegrationEventMiddlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsRestjson1_serializeOpSendChatIntegrationEvent{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsRestjson1_deserializeOpSendChatIntegrationEvent{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "SendChatIntegrationEvent"); err != nil {
		return fmt.Errorf("add protocol finalizers: %v", err)
	}

	if err = addlegacyEndpointContextSetter(stack, options); err != nil {
		return err
	}
	if err = addSetLoggerMiddleware(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
		return err
	}
	if err = addResolveEndpointMiddleware(stack, options); err != nil {
		return err
	}
	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
		return err
	}
	if err = addRetryMiddlewares(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
		return err
	}
	if err = addClientUserAgent(stack, options); err != nil {
		return err
	}
	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
		return err
	}
	if err = addOpSendChatIntegrationEventValidationMiddleware(stack); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSendChatIntegrationEvent(options.Region), middleware.Before); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
		return err
	}
	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
		return err
	}
	if err = addResponseErrorMiddleware(stack); err != nil {
		return err
	}
	if err = addRequestResponseLogging(stack, options); err != nil {
		return err
	}
	if err = addDisableHTTPSMiddleware(stack, options); err != nil {
		return err
	}
	return nil
}

func newServiceMetadataMiddleware_opSendChatIntegrationEvent(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "SendChatIntegrationEvent",
	}
}