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",
}
}
|