File: api_op_CreateSlot.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 (234 lines) | stat: -rw-r--r-- 7,356 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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
// Code generated by smithy-go-codegen DO NOT EDIT.

package lexmodelsv2

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/lexmodelsv2/types"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
	"time"
)

// Creates a slot in an intent. A slot is a variable needed to fulfill an intent.
// For example, an OrderPizza intent might need slots for size, crust, and number
// of pizzas. For each slot, you define one or more utterances that Amazon Lex uses
// to elicit a response from the user.
func (c *Client) CreateSlot(ctx context.Context, params *CreateSlotInput, optFns ...func(*Options)) (*CreateSlotOutput, error) {
	if params == nil {
		params = &CreateSlotInput{}
	}

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

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

type CreateSlotInput struct {

	// The identifier of the bot associated with the slot.
	//
	// This member is required.
	BotId *string

	// The version of the bot associated with the slot.
	//
	// This member is required.
	BotVersion *string

	// The identifier of the intent that contains the slot.
	//
	// This member is required.
	IntentId *string

	// The identifier of the language and locale that the slot will be used in. The
	// string must match one of the supported locales. All of the bots, intents, slot
	// types used by the slot must have the same locale. For more information, see
	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html)
	// .
	//
	// This member is required.
	LocaleId *string

	// The name of the slot. Slot names must be unique within the bot that contains
	// the slot.
	//
	// This member is required.
	SlotName *string

	// Specifies prompts that Amazon Lex sends to the user to elicit a response that
	// provides the value for the slot.
	//
	// This member is required.
	ValueElicitationSetting *types.SlotValueElicitationSetting

	// A description of the slot. Use this to help identify the slot in lists.
	Description *string

	// Indicates whether the slot returns multiple values in one response. Multi-value
	// slots are only available in the en-US locale. If you set this value to true in
	// any other locale, Amazon Lex throws a ValidationException . If the
	// multipleValuesSetting is not set, the default value is false .
	MultipleValuesSetting *types.MultipleValuesSetting

	// Determines how slot values are used in Amazon CloudWatch logs. If the value of
	// the obfuscationSetting parameter is DefaultObfuscation , slot values are
	// obfuscated in the log output. If the value is None , the actual value is present
	// in the log output. The default is to obfuscate values in the CloudWatch logs.
	ObfuscationSetting *types.ObfuscationSetting

	// The unique identifier for the slot type associated with this slot. The slot
	// type determines the values that can be entered into the slot.
	SlotTypeId *string

	// Specifications for the constituent sub slots and the expression for the
	// composite slot.
	SubSlotSetting *types.SubSlotSetting

	noSmithyDocumentSerde
}

type CreateSlotOutput struct {

	// The unique identifier of the bot associated with the slot.
	BotId *string

	// The version of the bot associated with the slot.
	BotVersion *string

	// The timestamp of the date and time that the slot was created.
	CreationDateTime *time.Time

	// The description associated with the slot.
	Description *string

	// The unique identifier of the intent associated with the slot.
	IntentId *string

	// The language and local specified for the slot.
	LocaleId *string

	// Indicates whether the slot returns multiple values in one response.
	MultipleValuesSetting *types.MultipleValuesSetting

	// Indicates whether the slot is configured to obfuscate values in Amazon
	// CloudWatch logs.
	ObfuscationSetting *types.ObfuscationSetting

	// The unique identifier associated with the slot. Use this to identify the slot
	// when you update or delete it.
	SlotId *string

	// The name specified for the slot.
	SlotName *string

	// The unique identifier of the slot type associated with this slot.
	SlotTypeId *string

	// Specifications for the constituent sub slots and the expression for the
	// composite slot.
	SubSlotSetting *types.SubSlotSetting

	// The value elicitation settings specified for the slot.
	ValueElicitationSetting *types.SlotValueElicitationSetting

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

	noSmithyDocumentSerde
}

func (c *Client) addOperationCreateSlotMiddlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateSlot{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateSlot{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "CreateSlot"); 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 = addOpCreateSlotValidationMiddleware(stack); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateSlot(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_opCreateSlot(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "CreateSlot",
	}
}