github.com/aavshr/aws-sdk-go@v1.41.3/service/lexmodelbuildingservice/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package lexmodelbuildingservice
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const opCreateBotVersion = "CreateBotVersion"
    17  
    18  // CreateBotVersionRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateBotVersion operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See CreateBotVersion for more information on using the CreateBotVersion
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the CreateBotVersionRequest method.
    34  //    req, resp := client.CreateBotVersionRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateBotVersion
    42  func (c *LexModelBuildingService) CreateBotVersionRequest(input *CreateBotVersionInput) (req *request.Request, output *CreateBotVersionOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateBotVersion,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/bots/{name}/versions",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateBotVersionInput{}
    51  	}
    52  
    53  	output = &CreateBotVersionOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateBotVersion API operation for Amazon Lex Model Building Service.
    59  //
    60  // Creates a new version of the bot based on the $LATEST version. If the $LATEST
    61  // version of this resource hasn't changed since you created the last version,
    62  // Amazon Lex doesn't create a new version. It returns the last created version.
    63  //
    64  // You can update only the $LATEST version of the bot. You can't update the
    65  // numbered versions that you create with the CreateBotVersion operation.
    66  //
    67  // When you create the first version of a bot, Amazon Lex sets the version to
    68  // 1. Subsequent versions increment by 1. For more information, see versioning-intro.
    69  //
    70  // This operation requires permission for the lex:CreateBotVersion action.
    71  //
    72  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    73  // with awserr.Error's Code and Message methods to get detailed information about
    74  // the error.
    75  //
    76  // See the AWS API reference guide for Amazon Lex Model Building Service's
    77  // API operation CreateBotVersion for usage and error information.
    78  //
    79  // Returned Error Types:
    80  //   * NotFoundException
    81  //   The resource specified in the request was not found. Check the resource and
    82  //   try again.
    83  //
    84  //   * ConflictException
    85  //   There was a conflict processing the request. Try your request again.
    86  //
    87  //   * LimitExceededException
    88  //   The request exceeded a limit. Try your request again.
    89  //
    90  //   * InternalFailureException
    91  //   An internal Amazon Lex error occurred. Try your request again.
    92  //
    93  //   * BadRequestException
    94  //   The request is not well formed. For example, a value is invalid or a required
    95  //   field is missing. Check the field values, and try again.
    96  //
    97  //   * PreconditionFailedException
    98  //   The checksum of the resource that you are trying to change does not match
    99  //   the checksum in the request. Check the resource's checksum and try again.
   100  //
   101  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateBotVersion
   102  func (c *LexModelBuildingService) CreateBotVersion(input *CreateBotVersionInput) (*CreateBotVersionOutput, error) {
   103  	req, out := c.CreateBotVersionRequest(input)
   104  	return out, req.Send()
   105  }
   106  
   107  // CreateBotVersionWithContext is the same as CreateBotVersion with the addition of
   108  // the ability to pass a context and additional request options.
   109  //
   110  // See CreateBotVersion for details on how to use this API operation.
   111  //
   112  // The context must be non-nil and will be used for request cancellation. If
   113  // the context is nil a panic will occur. In the future the SDK may create
   114  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   115  // for more information on using Contexts.
   116  func (c *LexModelBuildingService) CreateBotVersionWithContext(ctx aws.Context, input *CreateBotVersionInput, opts ...request.Option) (*CreateBotVersionOutput, error) {
   117  	req, out := c.CreateBotVersionRequest(input)
   118  	req.SetContext(ctx)
   119  	req.ApplyOptions(opts...)
   120  	return out, req.Send()
   121  }
   122  
   123  const opCreateIntentVersion = "CreateIntentVersion"
   124  
   125  // CreateIntentVersionRequest generates a "aws/request.Request" representing the
   126  // client's request for the CreateIntentVersion operation. The "output" return
   127  // value will be populated with the request's response once the request completes
   128  // successfully.
   129  //
   130  // Use "Send" method on the returned Request to send the API call to the service.
   131  // the "output" return value is not valid until after Send returns without error.
   132  //
   133  // See CreateIntentVersion for more information on using the CreateIntentVersion
   134  // API call, and error handling.
   135  //
   136  // This method is useful when you want to inject custom logic or configuration
   137  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   138  //
   139  //
   140  //    // Example sending a request using the CreateIntentVersionRequest method.
   141  //    req, resp := client.CreateIntentVersionRequest(params)
   142  //
   143  //    err := req.Send()
   144  //    if err == nil { // resp is now filled
   145  //        fmt.Println(resp)
   146  //    }
   147  //
   148  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateIntentVersion
   149  func (c *LexModelBuildingService) CreateIntentVersionRequest(input *CreateIntentVersionInput) (req *request.Request, output *CreateIntentVersionOutput) {
   150  	op := &request.Operation{
   151  		Name:       opCreateIntentVersion,
   152  		HTTPMethod: "POST",
   153  		HTTPPath:   "/intents/{name}/versions",
   154  	}
   155  
   156  	if input == nil {
   157  		input = &CreateIntentVersionInput{}
   158  	}
   159  
   160  	output = &CreateIntentVersionOutput{}
   161  	req = c.newRequest(op, input, output)
   162  	return
   163  }
   164  
   165  // CreateIntentVersion API operation for Amazon Lex Model Building Service.
   166  //
   167  // Creates a new version of an intent based on the $LATEST version of the intent.
   168  // If the $LATEST version of this intent hasn't changed since you last updated
   169  // it, Amazon Lex doesn't create a new version. It returns the last version
   170  // you created.
   171  //
   172  // You can update only the $LATEST version of the intent. You can't update the
   173  // numbered versions that you create with the CreateIntentVersion operation.
   174  //
   175  // When you create a version of an intent, Amazon Lex sets the version to 1.
   176  // Subsequent versions increment by 1. For more information, see versioning-intro.
   177  //
   178  // This operation requires permissions to perform the lex:CreateIntentVersion
   179  // action.
   180  //
   181  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   182  // with awserr.Error's Code and Message methods to get detailed information about
   183  // the error.
   184  //
   185  // See the AWS API reference guide for Amazon Lex Model Building Service's
   186  // API operation CreateIntentVersion for usage and error information.
   187  //
   188  // Returned Error Types:
   189  //   * NotFoundException
   190  //   The resource specified in the request was not found. Check the resource and
   191  //   try again.
   192  //
   193  //   * ConflictException
   194  //   There was a conflict processing the request. Try your request again.
   195  //
   196  //   * LimitExceededException
   197  //   The request exceeded a limit. Try your request again.
   198  //
   199  //   * InternalFailureException
   200  //   An internal Amazon Lex error occurred. Try your request again.
   201  //
   202  //   * BadRequestException
   203  //   The request is not well formed. For example, a value is invalid or a required
   204  //   field is missing. Check the field values, and try again.
   205  //
   206  //   * PreconditionFailedException
   207  //   The checksum of the resource that you are trying to change does not match
   208  //   the checksum in the request. Check the resource's checksum and try again.
   209  //
   210  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateIntentVersion
   211  func (c *LexModelBuildingService) CreateIntentVersion(input *CreateIntentVersionInput) (*CreateIntentVersionOutput, error) {
   212  	req, out := c.CreateIntentVersionRequest(input)
   213  	return out, req.Send()
   214  }
   215  
   216  // CreateIntentVersionWithContext is the same as CreateIntentVersion with the addition of
   217  // the ability to pass a context and additional request options.
   218  //
   219  // See CreateIntentVersion for details on how to use this API operation.
   220  //
   221  // The context must be non-nil and will be used for request cancellation. If
   222  // the context is nil a panic will occur. In the future the SDK may create
   223  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   224  // for more information on using Contexts.
   225  func (c *LexModelBuildingService) CreateIntentVersionWithContext(ctx aws.Context, input *CreateIntentVersionInput, opts ...request.Option) (*CreateIntentVersionOutput, error) {
   226  	req, out := c.CreateIntentVersionRequest(input)
   227  	req.SetContext(ctx)
   228  	req.ApplyOptions(opts...)
   229  	return out, req.Send()
   230  }
   231  
   232  const opCreateSlotTypeVersion = "CreateSlotTypeVersion"
   233  
   234  // CreateSlotTypeVersionRequest generates a "aws/request.Request" representing the
   235  // client's request for the CreateSlotTypeVersion operation. The "output" return
   236  // value will be populated with the request's response once the request completes
   237  // successfully.
   238  //
   239  // Use "Send" method on the returned Request to send the API call to the service.
   240  // the "output" return value is not valid until after Send returns without error.
   241  //
   242  // See CreateSlotTypeVersion for more information on using the CreateSlotTypeVersion
   243  // API call, and error handling.
   244  //
   245  // This method is useful when you want to inject custom logic or configuration
   246  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   247  //
   248  //
   249  //    // Example sending a request using the CreateSlotTypeVersionRequest method.
   250  //    req, resp := client.CreateSlotTypeVersionRequest(params)
   251  //
   252  //    err := req.Send()
   253  //    if err == nil { // resp is now filled
   254  //        fmt.Println(resp)
   255  //    }
   256  //
   257  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateSlotTypeVersion
   258  func (c *LexModelBuildingService) CreateSlotTypeVersionRequest(input *CreateSlotTypeVersionInput) (req *request.Request, output *CreateSlotTypeVersionOutput) {
   259  	op := &request.Operation{
   260  		Name:       opCreateSlotTypeVersion,
   261  		HTTPMethod: "POST",
   262  		HTTPPath:   "/slottypes/{name}/versions",
   263  	}
   264  
   265  	if input == nil {
   266  		input = &CreateSlotTypeVersionInput{}
   267  	}
   268  
   269  	output = &CreateSlotTypeVersionOutput{}
   270  	req = c.newRequest(op, input, output)
   271  	return
   272  }
   273  
   274  // CreateSlotTypeVersion API operation for Amazon Lex Model Building Service.
   275  //
   276  // Creates a new version of a slot type based on the $LATEST version of the
   277  // specified slot type. If the $LATEST version of this resource has not changed
   278  // since the last version that you created, Amazon Lex doesn't create a new
   279  // version. It returns the last version that you created.
   280  //
   281  // You can update only the $LATEST version of a slot type. You can't update
   282  // the numbered versions that you create with the CreateSlotTypeVersion operation.
   283  //
   284  // When you create a version of a slot type, Amazon Lex sets the version to
   285  // 1. Subsequent versions increment by 1. For more information, see versioning-intro.
   286  //
   287  // This operation requires permissions for the lex:CreateSlotTypeVersion action.
   288  //
   289  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   290  // with awserr.Error's Code and Message methods to get detailed information about
   291  // the error.
   292  //
   293  // See the AWS API reference guide for Amazon Lex Model Building Service's
   294  // API operation CreateSlotTypeVersion for usage and error information.
   295  //
   296  // Returned Error Types:
   297  //   * NotFoundException
   298  //   The resource specified in the request was not found. Check the resource and
   299  //   try again.
   300  //
   301  //   * ConflictException
   302  //   There was a conflict processing the request. Try your request again.
   303  //
   304  //   * LimitExceededException
   305  //   The request exceeded a limit. Try your request again.
   306  //
   307  //   * InternalFailureException
   308  //   An internal Amazon Lex error occurred. Try your request again.
   309  //
   310  //   * BadRequestException
   311  //   The request is not well formed. For example, a value is invalid or a required
   312  //   field is missing. Check the field values, and try again.
   313  //
   314  //   * PreconditionFailedException
   315  //   The checksum of the resource that you are trying to change does not match
   316  //   the checksum in the request. Check the resource's checksum and try again.
   317  //
   318  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateSlotTypeVersion
   319  func (c *LexModelBuildingService) CreateSlotTypeVersion(input *CreateSlotTypeVersionInput) (*CreateSlotTypeVersionOutput, error) {
   320  	req, out := c.CreateSlotTypeVersionRequest(input)
   321  	return out, req.Send()
   322  }
   323  
   324  // CreateSlotTypeVersionWithContext is the same as CreateSlotTypeVersion with the addition of
   325  // the ability to pass a context and additional request options.
   326  //
   327  // See CreateSlotTypeVersion for details on how to use this API operation.
   328  //
   329  // The context must be non-nil and will be used for request cancellation. If
   330  // the context is nil a panic will occur. In the future the SDK may create
   331  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   332  // for more information on using Contexts.
   333  func (c *LexModelBuildingService) CreateSlotTypeVersionWithContext(ctx aws.Context, input *CreateSlotTypeVersionInput, opts ...request.Option) (*CreateSlotTypeVersionOutput, error) {
   334  	req, out := c.CreateSlotTypeVersionRequest(input)
   335  	req.SetContext(ctx)
   336  	req.ApplyOptions(opts...)
   337  	return out, req.Send()
   338  }
   339  
   340  const opDeleteBot = "DeleteBot"
   341  
   342  // DeleteBotRequest generates a "aws/request.Request" representing the
   343  // client's request for the DeleteBot operation. The "output" return
   344  // value will be populated with the request's response once the request completes
   345  // successfully.
   346  //
   347  // Use "Send" method on the returned Request to send the API call to the service.
   348  // the "output" return value is not valid until after Send returns without error.
   349  //
   350  // See DeleteBot for more information on using the DeleteBot
   351  // API call, and error handling.
   352  //
   353  // This method is useful when you want to inject custom logic or configuration
   354  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   355  //
   356  //
   357  //    // Example sending a request using the DeleteBotRequest method.
   358  //    req, resp := client.DeleteBotRequest(params)
   359  //
   360  //    err := req.Send()
   361  //    if err == nil { // resp is now filled
   362  //        fmt.Println(resp)
   363  //    }
   364  //
   365  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBot
   366  func (c *LexModelBuildingService) DeleteBotRequest(input *DeleteBotInput) (req *request.Request, output *DeleteBotOutput) {
   367  	op := &request.Operation{
   368  		Name:       opDeleteBot,
   369  		HTTPMethod: "DELETE",
   370  		HTTPPath:   "/bots/{name}",
   371  	}
   372  
   373  	if input == nil {
   374  		input = &DeleteBotInput{}
   375  	}
   376  
   377  	output = &DeleteBotOutput{}
   378  	req = c.newRequest(op, input, output)
   379  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   380  	return
   381  }
   382  
   383  // DeleteBot API operation for Amazon Lex Model Building Service.
   384  //
   385  // Deletes all versions of the bot, including the $LATEST version. To delete
   386  // a specific version of the bot, use the DeleteBotVersion operation. The DeleteBot
   387  // operation doesn't immediately remove the bot schema. Instead, it is marked
   388  // for deletion and removed later.
   389  //
   390  // Amazon Lex stores utterances indefinitely for improving the ability of your
   391  // bot to respond to user inputs. These utterances are not removed when the
   392  // bot is deleted. To remove the utterances, use the DeleteUtterances operation.
   393  //
   394  // If a bot has an alias, you can't delete it. Instead, the DeleteBot operation
   395  // returns a ResourceInUseException exception that includes a reference to the
   396  // alias that refers to the bot. To remove the reference to the bot, delete
   397  // the alias. If you get the same exception again, delete the referring alias
   398  // until the DeleteBot operation is successful.
   399  //
   400  // This operation requires permissions for the lex:DeleteBot action.
   401  //
   402  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   403  // with awserr.Error's Code and Message methods to get detailed information about
   404  // the error.
   405  //
   406  // See the AWS API reference guide for Amazon Lex Model Building Service's
   407  // API operation DeleteBot for usage and error information.
   408  //
   409  // Returned Error Types:
   410  //   * NotFoundException
   411  //   The resource specified in the request was not found. Check the resource and
   412  //   try again.
   413  //
   414  //   * ConflictException
   415  //   There was a conflict processing the request. Try your request again.
   416  //
   417  //   * LimitExceededException
   418  //   The request exceeded a limit. Try your request again.
   419  //
   420  //   * InternalFailureException
   421  //   An internal Amazon Lex error occurred. Try your request again.
   422  //
   423  //   * BadRequestException
   424  //   The request is not well formed. For example, a value is invalid or a required
   425  //   field is missing. Check the field values, and try again.
   426  //
   427  //   * ResourceInUseException
   428  //   The resource that you are attempting to delete is referred to by another
   429  //   resource. Use this information to remove references to the resource that
   430  //   you are trying to delete.
   431  //
   432  //   The body of the exception contains a JSON object that describes the resource.
   433  //
   434  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
   435  //
   436  //   "resourceReference": {
   437  //
   438  //   "name": string, "version": string } }
   439  //
   440  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBot
   441  func (c *LexModelBuildingService) DeleteBot(input *DeleteBotInput) (*DeleteBotOutput, error) {
   442  	req, out := c.DeleteBotRequest(input)
   443  	return out, req.Send()
   444  }
   445  
   446  // DeleteBotWithContext is the same as DeleteBot with the addition of
   447  // the ability to pass a context and additional request options.
   448  //
   449  // See DeleteBot for details on how to use this API operation.
   450  //
   451  // The context must be non-nil and will be used for request cancellation. If
   452  // the context is nil a panic will occur. In the future the SDK may create
   453  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   454  // for more information on using Contexts.
   455  func (c *LexModelBuildingService) DeleteBotWithContext(ctx aws.Context, input *DeleteBotInput, opts ...request.Option) (*DeleteBotOutput, error) {
   456  	req, out := c.DeleteBotRequest(input)
   457  	req.SetContext(ctx)
   458  	req.ApplyOptions(opts...)
   459  	return out, req.Send()
   460  }
   461  
   462  const opDeleteBotAlias = "DeleteBotAlias"
   463  
   464  // DeleteBotAliasRequest generates a "aws/request.Request" representing the
   465  // client's request for the DeleteBotAlias operation. The "output" return
   466  // value will be populated with the request's response once the request completes
   467  // successfully.
   468  //
   469  // Use "Send" method on the returned Request to send the API call to the service.
   470  // the "output" return value is not valid until after Send returns without error.
   471  //
   472  // See DeleteBotAlias for more information on using the DeleteBotAlias
   473  // API call, and error handling.
   474  //
   475  // This method is useful when you want to inject custom logic or configuration
   476  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   477  //
   478  //
   479  //    // Example sending a request using the DeleteBotAliasRequest method.
   480  //    req, resp := client.DeleteBotAliasRequest(params)
   481  //
   482  //    err := req.Send()
   483  //    if err == nil { // resp is now filled
   484  //        fmt.Println(resp)
   485  //    }
   486  //
   487  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
   488  func (c *LexModelBuildingService) DeleteBotAliasRequest(input *DeleteBotAliasInput) (req *request.Request, output *DeleteBotAliasOutput) {
   489  	op := &request.Operation{
   490  		Name:       opDeleteBotAlias,
   491  		HTTPMethod: "DELETE",
   492  		HTTPPath:   "/bots/{botName}/aliases/{name}",
   493  	}
   494  
   495  	if input == nil {
   496  		input = &DeleteBotAliasInput{}
   497  	}
   498  
   499  	output = &DeleteBotAliasOutput{}
   500  	req = c.newRequest(op, input, output)
   501  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   502  	return
   503  }
   504  
   505  // DeleteBotAlias API operation for Amazon Lex Model Building Service.
   506  //
   507  // Deletes an alias for the specified bot.
   508  //
   509  // You can't delete an alias that is used in the association between a bot and
   510  // a messaging channel. If an alias is used in a channel association, the DeleteBot
   511  // operation returns a ResourceInUseException exception that includes a reference
   512  // to the channel association that refers to the bot. You can remove the reference
   513  // to the alias by deleting the channel association. If you get the same exception
   514  // again, delete the referring association until the DeleteBotAlias operation
   515  // is successful.
   516  //
   517  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   518  // with awserr.Error's Code and Message methods to get detailed information about
   519  // the error.
   520  //
   521  // See the AWS API reference guide for Amazon Lex Model Building Service's
   522  // API operation DeleteBotAlias for usage and error information.
   523  //
   524  // Returned Error Types:
   525  //   * NotFoundException
   526  //   The resource specified in the request was not found. Check the resource and
   527  //   try again.
   528  //
   529  //   * ConflictException
   530  //   There was a conflict processing the request. Try your request again.
   531  //
   532  //   * LimitExceededException
   533  //   The request exceeded a limit. Try your request again.
   534  //
   535  //   * InternalFailureException
   536  //   An internal Amazon Lex error occurred. Try your request again.
   537  //
   538  //   * BadRequestException
   539  //   The request is not well formed. For example, a value is invalid or a required
   540  //   field is missing. Check the field values, and try again.
   541  //
   542  //   * ResourceInUseException
   543  //   The resource that you are attempting to delete is referred to by another
   544  //   resource. Use this information to remove references to the resource that
   545  //   you are trying to delete.
   546  //
   547  //   The body of the exception contains a JSON object that describes the resource.
   548  //
   549  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
   550  //
   551  //   "resourceReference": {
   552  //
   553  //   "name": string, "version": string } }
   554  //
   555  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
   556  func (c *LexModelBuildingService) DeleteBotAlias(input *DeleteBotAliasInput) (*DeleteBotAliasOutput, error) {
   557  	req, out := c.DeleteBotAliasRequest(input)
   558  	return out, req.Send()
   559  }
   560  
   561  // DeleteBotAliasWithContext is the same as DeleteBotAlias with the addition of
   562  // the ability to pass a context and additional request options.
   563  //
   564  // See DeleteBotAlias for details on how to use this API operation.
   565  //
   566  // The context must be non-nil and will be used for request cancellation. If
   567  // the context is nil a panic will occur. In the future the SDK may create
   568  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   569  // for more information on using Contexts.
   570  func (c *LexModelBuildingService) DeleteBotAliasWithContext(ctx aws.Context, input *DeleteBotAliasInput, opts ...request.Option) (*DeleteBotAliasOutput, error) {
   571  	req, out := c.DeleteBotAliasRequest(input)
   572  	req.SetContext(ctx)
   573  	req.ApplyOptions(opts...)
   574  	return out, req.Send()
   575  }
   576  
   577  const opDeleteBotChannelAssociation = "DeleteBotChannelAssociation"
   578  
   579  // DeleteBotChannelAssociationRequest generates a "aws/request.Request" representing the
   580  // client's request for the DeleteBotChannelAssociation operation. The "output" return
   581  // value will be populated with the request's response once the request completes
   582  // successfully.
   583  //
   584  // Use "Send" method on the returned Request to send the API call to the service.
   585  // the "output" return value is not valid until after Send returns without error.
   586  //
   587  // See DeleteBotChannelAssociation for more information on using the DeleteBotChannelAssociation
   588  // API call, and error handling.
   589  //
   590  // This method is useful when you want to inject custom logic or configuration
   591  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   592  //
   593  //
   594  //    // Example sending a request using the DeleteBotChannelAssociationRequest method.
   595  //    req, resp := client.DeleteBotChannelAssociationRequest(params)
   596  //
   597  //    err := req.Send()
   598  //    if err == nil { // resp is now filled
   599  //        fmt.Println(resp)
   600  //    }
   601  //
   602  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
   603  func (c *LexModelBuildingService) DeleteBotChannelAssociationRequest(input *DeleteBotChannelAssociationInput) (req *request.Request, output *DeleteBotChannelAssociationOutput) {
   604  	op := &request.Operation{
   605  		Name:       opDeleteBotChannelAssociation,
   606  		HTTPMethod: "DELETE",
   607  		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
   608  	}
   609  
   610  	if input == nil {
   611  		input = &DeleteBotChannelAssociationInput{}
   612  	}
   613  
   614  	output = &DeleteBotChannelAssociationOutput{}
   615  	req = c.newRequest(op, input, output)
   616  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   617  	return
   618  }
   619  
   620  // DeleteBotChannelAssociation API operation for Amazon Lex Model Building Service.
   621  //
   622  // Deletes the association between an Amazon Lex bot and a messaging platform.
   623  //
   624  // This operation requires permission for the lex:DeleteBotChannelAssociation
   625  // action.
   626  //
   627  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   628  // with awserr.Error's Code and Message methods to get detailed information about
   629  // the error.
   630  //
   631  // See the AWS API reference guide for Amazon Lex Model Building Service's
   632  // API operation DeleteBotChannelAssociation for usage and error information.
   633  //
   634  // Returned Error Types:
   635  //   * NotFoundException
   636  //   The resource specified in the request was not found. Check the resource and
   637  //   try again.
   638  //
   639  //   * ConflictException
   640  //   There was a conflict processing the request. Try your request again.
   641  //
   642  //   * LimitExceededException
   643  //   The request exceeded a limit. Try your request again.
   644  //
   645  //   * InternalFailureException
   646  //   An internal Amazon Lex error occurred. Try your request again.
   647  //
   648  //   * BadRequestException
   649  //   The request is not well formed. For example, a value is invalid or a required
   650  //   field is missing. Check the field values, and try again.
   651  //
   652  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
   653  func (c *LexModelBuildingService) DeleteBotChannelAssociation(input *DeleteBotChannelAssociationInput) (*DeleteBotChannelAssociationOutput, error) {
   654  	req, out := c.DeleteBotChannelAssociationRequest(input)
   655  	return out, req.Send()
   656  }
   657  
   658  // DeleteBotChannelAssociationWithContext is the same as DeleteBotChannelAssociation with the addition of
   659  // the ability to pass a context and additional request options.
   660  //
   661  // See DeleteBotChannelAssociation for details on how to use this API operation.
   662  //
   663  // The context must be non-nil and will be used for request cancellation. If
   664  // the context is nil a panic will occur. In the future the SDK may create
   665  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   666  // for more information on using Contexts.
   667  func (c *LexModelBuildingService) DeleteBotChannelAssociationWithContext(ctx aws.Context, input *DeleteBotChannelAssociationInput, opts ...request.Option) (*DeleteBotChannelAssociationOutput, error) {
   668  	req, out := c.DeleteBotChannelAssociationRequest(input)
   669  	req.SetContext(ctx)
   670  	req.ApplyOptions(opts...)
   671  	return out, req.Send()
   672  }
   673  
   674  const opDeleteBotVersion = "DeleteBotVersion"
   675  
   676  // DeleteBotVersionRequest generates a "aws/request.Request" representing the
   677  // client's request for the DeleteBotVersion operation. The "output" return
   678  // value will be populated with the request's response once the request completes
   679  // successfully.
   680  //
   681  // Use "Send" method on the returned Request to send the API call to the service.
   682  // the "output" return value is not valid until after Send returns without error.
   683  //
   684  // See DeleteBotVersion for more information on using the DeleteBotVersion
   685  // API call, and error handling.
   686  //
   687  // This method is useful when you want to inject custom logic or configuration
   688  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   689  //
   690  //
   691  //    // Example sending a request using the DeleteBotVersionRequest method.
   692  //    req, resp := client.DeleteBotVersionRequest(params)
   693  //
   694  //    err := req.Send()
   695  //    if err == nil { // resp is now filled
   696  //        fmt.Println(resp)
   697  //    }
   698  //
   699  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
   700  func (c *LexModelBuildingService) DeleteBotVersionRequest(input *DeleteBotVersionInput) (req *request.Request, output *DeleteBotVersionOutput) {
   701  	op := &request.Operation{
   702  		Name:       opDeleteBotVersion,
   703  		HTTPMethod: "DELETE",
   704  		HTTPPath:   "/bots/{name}/versions/{version}",
   705  	}
   706  
   707  	if input == nil {
   708  		input = &DeleteBotVersionInput{}
   709  	}
   710  
   711  	output = &DeleteBotVersionOutput{}
   712  	req = c.newRequest(op, input, output)
   713  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   714  	return
   715  }
   716  
   717  // DeleteBotVersion API operation for Amazon Lex Model Building Service.
   718  //
   719  // Deletes a specific version of a bot. To delete all versions of a bot, use
   720  // the DeleteBot operation.
   721  //
   722  // This operation requires permissions for the lex:DeleteBotVersion action.
   723  //
   724  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   725  // with awserr.Error's Code and Message methods to get detailed information about
   726  // the error.
   727  //
   728  // See the AWS API reference guide for Amazon Lex Model Building Service's
   729  // API operation DeleteBotVersion for usage and error information.
   730  //
   731  // Returned Error Types:
   732  //   * NotFoundException
   733  //   The resource specified in the request was not found. Check the resource and
   734  //   try again.
   735  //
   736  //   * ConflictException
   737  //   There was a conflict processing the request. Try your request again.
   738  //
   739  //   * LimitExceededException
   740  //   The request exceeded a limit. Try your request again.
   741  //
   742  //   * InternalFailureException
   743  //   An internal Amazon Lex error occurred. Try your request again.
   744  //
   745  //   * BadRequestException
   746  //   The request is not well formed. For example, a value is invalid or a required
   747  //   field is missing. Check the field values, and try again.
   748  //
   749  //   * ResourceInUseException
   750  //   The resource that you are attempting to delete is referred to by another
   751  //   resource. Use this information to remove references to the resource that
   752  //   you are trying to delete.
   753  //
   754  //   The body of the exception contains a JSON object that describes the resource.
   755  //
   756  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
   757  //
   758  //   "resourceReference": {
   759  //
   760  //   "name": string, "version": string } }
   761  //
   762  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
   763  func (c *LexModelBuildingService) DeleteBotVersion(input *DeleteBotVersionInput) (*DeleteBotVersionOutput, error) {
   764  	req, out := c.DeleteBotVersionRequest(input)
   765  	return out, req.Send()
   766  }
   767  
   768  // DeleteBotVersionWithContext is the same as DeleteBotVersion with the addition of
   769  // the ability to pass a context and additional request options.
   770  //
   771  // See DeleteBotVersion for details on how to use this API operation.
   772  //
   773  // The context must be non-nil and will be used for request cancellation. If
   774  // the context is nil a panic will occur. In the future the SDK may create
   775  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   776  // for more information on using Contexts.
   777  func (c *LexModelBuildingService) DeleteBotVersionWithContext(ctx aws.Context, input *DeleteBotVersionInput, opts ...request.Option) (*DeleteBotVersionOutput, error) {
   778  	req, out := c.DeleteBotVersionRequest(input)
   779  	req.SetContext(ctx)
   780  	req.ApplyOptions(opts...)
   781  	return out, req.Send()
   782  }
   783  
   784  const opDeleteIntent = "DeleteIntent"
   785  
   786  // DeleteIntentRequest generates a "aws/request.Request" representing the
   787  // client's request for the DeleteIntent operation. The "output" return
   788  // value will be populated with the request's response once the request completes
   789  // successfully.
   790  //
   791  // Use "Send" method on the returned Request to send the API call to the service.
   792  // the "output" return value is not valid until after Send returns without error.
   793  //
   794  // See DeleteIntent for more information on using the DeleteIntent
   795  // API call, and error handling.
   796  //
   797  // This method is useful when you want to inject custom logic or configuration
   798  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   799  //
   800  //
   801  //    // Example sending a request using the DeleteIntentRequest method.
   802  //    req, resp := client.DeleteIntentRequest(params)
   803  //
   804  //    err := req.Send()
   805  //    if err == nil { // resp is now filled
   806  //        fmt.Println(resp)
   807  //    }
   808  //
   809  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
   810  func (c *LexModelBuildingService) DeleteIntentRequest(input *DeleteIntentInput) (req *request.Request, output *DeleteIntentOutput) {
   811  	op := &request.Operation{
   812  		Name:       opDeleteIntent,
   813  		HTTPMethod: "DELETE",
   814  		HTTPPath:   "/intents/{name}",
   815  	}
   816  
   817  	if input == nil {
   818  		input = &DeleteIntentInput{}
   819  	}
   820  
   821  	output = &DeleteIntentOutput{}
   822  	req = c.newRequest(op, input, output)
   823  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   824  	return
   825  }
   826  
   827  // DeleteIntent API operation for Amazon Lex Model Building Service.
   828  //
   829  // Deletes all versions of the intent, including the $LATEST version. To delete
   830  // a specific version of the intent, use the DeleteIntentVersion operation.
   831  //
   832  // You can delete a version of an intent only if it is not referenced. To delete
   833  // an intent that is referred to in one or more bots (see how-it-works), you
   834  // must remove those references first.
   835  //
   836  // If you get the ResourceInUseException exception, it provides an example reference
   837  // that shows where the intent is referenced. To remove the reference to the
   838  // intent, either update the bot or delete it. If you get the same exception
   839  // when you attempt to delete the intent again, repeat until the intent has
   840  // no references and the call to DeleteIntent is successful.
   841  //
   842  // This operation requires permission for the lex:DeleteIntent action.
   843  //
   844  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   845  // with awserr.Error's Code and Message methods to get detailed information about
   846  // the error.
   847  //
   848  // See the AWS API reference guide for Amazon Lex Model Building Service's
   849  // API operation DeleteIntent for usage and error information.
   850  //
   851  // Returned Error Types:
   852  //   * NotFoundException
   853  //   The resource specified in the request was not found. Check the resource and
   854  //   try again.
   855  //
   856  //   * ConflictException
   857  //   There was a conflict processing the request. Try your request again.
   858  //
   859  //   * LimitExceededException
   860  //   The request exceeded a limit. Try your request again.
   861  //
   862  //   * InternalFailureException
   863  //   An internal Amazon Lex error occurred. Try your request again.
   864  //
   865  //   * BadRequestException
   866  //   The request is not well formed. For example, a value is invalid or a required
   867  //   field is missing. Check the field values, and try again.
   868  //
   869  //   * ResourceInUseException
   870  //   The resource that you are attempting to delete is referred to by another
   871  //   resource. Use this information to remove references to the resource that
   872  //   you are trying to delete.
   873  //
   874  //   The body of the exception contains a JSON object that describes the resource.
   875  //
   876  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
   877  //
   878  //   "resourceReference": {
   879  //
   880  //   "name": string, "version": string } }
   881  //
   882  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
   883  func (c *LexModelBuildingService) DeleteIntent(input *DeleteIntentInput) (*DeleteIntentOutput, error) {
   884  	req, out := c.DeleteIntentRequest(input)
   885  	return out, req.Send()
   886  }
   887  
   888  // DeleteIntentWithContext is the same as DeleteIntent with the addition of
   889  // the ability to pass a context and additional request options.
   890  //
   891  // See DeleteIntent for details on how to use this API operation.
   892  //
   893  // The context must be non-nil and will be used for request cancellation. If
   894  // the context is nil a panic will occur. In the future the SDK may create
   895  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   896  // for more information on using Contexts.
   897  func (c *LexModelBuildingService) DeleteIntentWithContext(ctx aws.Context, input *DeleteIntentInput, opts ...request.Option) (*DeleteIntentOutput, error) {
   898  	req, out := c.DeleteIntentRequest(input)
   899  	req.SetContext(ctx)
   900  	req.ApplyOptions(opts...)
   901  	return out, req.Send()
   902  }
   903  
   904  const opDeleteIntentVersion = "DeleteIntentVersion"
   905  
   906  // DeleteIntentVersionRequest generates a "aws/request.Request" representing the
   907  // client's request for the DeleteIntentVersion operation. The "output" return
   908  // value will be populated with the request's response once the request completes
   909  // successfully.
   910  //
   911  // Use "Send" method on the returned Request to send the API call to the service.
   912  // the "output" return value is not valid until after Send returns without error.
   913  //
   914  // See DeleteIntentVersion for more information on using the DeleteIntentVersion
   915  // API call, and error handling.
   916  //
   917  // This method is useful when you want to inject custom logic or configuration
   918  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   919  //
   920  //
   921  //    // Example sending a request using the DeleteIntentVersionRequest method.
   922  //    req, resp := client.DeleteIntentVersionRequest(params)
   923  //
   924  //    err := req.Send()
   925  //    if err == nil { // resp is now filled
   926  //        fmt.Println(resp)
   927  //    }
   928  //
   929  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
   930  func (c *LexModelBuildingService) DeleteIntentVersionRequest(input *DeleteIntentVersionInput) (req *request.Request, output *DeleteIntentVersionOutput) {
   931  	op := &request.Operation{
   932  		Name:       opDeleteIntentVersion,
   933  		HTTPMethod: "DELETE",
   934  		HTTPPath:   "/intents/{name}/versions/{version}",
   935  	}
   936  
   937  	if input == nil {
   938  		input = &DeleteIntentVersionInput{}
   939  	}
   940  
   941  	output = &DeleteIntentVersionOutput{}
   942  	req = c.newRequest(op, input, output)
   943  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   944  	return
   945  }
   946  
   947  // DeleteIntentVersion API operation for Amazon Lex Model Building Service.
   948  //
   949  // Deletes a specific version of an intent. To delete all versions of a intent,
   950  // use the DeleteIntent operation.
   951  //
   952  // This operation requires permissions for the lex:DeleteIntentVersion action.
   953  //
   954  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   955  // with awserr.Error's Code and Message methods to get detailed information about
   956  // the error.
   957  //
   958  // See the AWS API reference guide for Amazon Lex Model Building Service's
   959  // API operation DeleteIntentVersion for usage and error information.
   960  //
   961  // Returned Error Types:
   962  //   * NotFoundException
   963  //   The resource specified in the request was not found. Check the resource and
   964  //   try again.
   965  //
   966  //   * ConflictException
   967  //   There was a conflict processing the request. Try your request again.
   968  //
   969  //   * LimitExceededException
   970  //   The request exceeded a limit. Try your request again.
   971  //
   972  //   * InternalFailureException
   973  //   An internal Amazon Lex error occurred. Try your request again.
   974  //
   975  //   * BadRequestException
   976  //   The request is not well formed. For example, a value is invalid or a required
   977  //   field is missing. Check the field values, and try again.
   978  //
   979  //   * ResourceInUseException
   980  //   The resource that you are attempting to delete is referred to by another
   981  //   resource. Use this information to remove references to the resource that
   982  //   you are trying to delete.
   983  //
   984  //   The body of the exception contains a JSON object that describes the resource.
   985  //
   986  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
   987  //
   988  //   "resourceReference": {
   989  //
   990  //   "name": string, "version": string } }
   991  //
   992  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
   993  func (c *LexModelBuildingService) DeleteIntentVersion(input *DeleteIntentVersionInput) (*DeleteIntentVersionOutput, error) {
   994  	req, out := c.DeleteIntentVersionRequest(input)
   995  	return out, req.Send()
   996  }
   997  
   998  // DeleteIntentVersionWithContext is the same as DeleteIntentVersion with the addition of
   999  // the ability to pass a context and additional request options.
  1000  //
  1001  // See DeleteIntentVersion for details on how to use this API operation.
  1002  //
  1003  // The context must be non-nil and will be used for request cancellation. If
  1004  // the context is nil a panic will occur. In the future the SDK may create
  1005  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1006  // for more information on using Contexts.
  1007  func (c *LexModelBuildingService) DeleteIntentVersionWithContext(ctx aws.Context, input *DeleteIntentVersionInput, opts ...request.Option) (*DeleteIntentVersionOutput, error) {
  1008  	req, out := c.DeleteIntentVersionRequest(input)
  1009  	req.SetContext(ctx)
  1010  	req.ApplyOptions(opts...)
  1011  	return out, req.Send()
  1012  }
  1013  
  1014  const opDeleteSlotType = "DeleteSlotType"
  1015  
  1016  // DeleteSlotTypeRequest generates a "aws/request.Request" representing the
  1017  // client's request for the DeleteSlotType operation. The "output" return
  1018  // value will be populated with the request's response once the request completes
  1019  // successfully.
  1020  //
  1021  // Use "Send" method on the returned Request to send the API call to the service.
  1022  // the "output" return value is not valid until after Send returns without error.
  1023  //
  1024  // See DeleteSlotType for more information on using the DeleteSlotType
  1025  // API call, and error handling.
  1026  //
  1027  // This method is useful when you want to inject custom logic or configuration
  1028  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1029  //
  1030  //
  1031  //    // Example sending a request using the DeleteSlotTypeRequest method.
  1032  //    req, resp := client.DeleteSlotTypeRequest(params)
  1033  //
  1034  //    err := req.Send()
  1035  //    if err == nil { // resp is now filled
  1036  //        fmt.Println(resp)
  1037  //    }
  1038  //
  1039  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
  1040  func (c *LexModelBuildingService) DeleteSlotTypeRequest(input *DeleteSlotTypeInput) (req *request.Request, output *DeleteSlotTypeOutput) {
  1041  	op := &request.Operation{
  1042  		Name:       opDeleteSlotType,
  1043  		HTTPMethod: "DELETE",
  1044  		HTTPPath:   "/slottypes/{name}",
  1045  	}
  1046  
  1047  	if input == nil {
  1048  		input = &DeleteSlotTypeInput{}
  1049  	}
  1050  
  1051  	output = &DeleteSlotTypeOutput{}
  1052  	req = c.newRequest(op, input, output)
  1053  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1054  	return
  1055  }
  1056  
  1057  // DeleteSlotType API operation for Amazon Lex Model Building Service.
  1058  //
  1059  // Deletes all versions of the slot type, including the $LATEST version. To
  1060  // delete a specific version of the slot type, use the DeleteSlotTypeVersion
  1061  // operation.
  1062  //
  1063  // You can delete a version of a slot type only if it is not referenced. To
  1064  // delete a slot type that is referred to in one or more intents, you must remove
  1065  // those references first.
  1066  //
  1067  // If you get the ResourceInUseException exception, the exception provides an
  1068  // example reference that shows the intent where the slot type is referenced.
  1069  // To remove the reference to the slot type, either update the intent or delete
  1070  // it. If you get the same exception when you attempt to delete the slot type
  1071  // again, repeat until the slot type has no references and the DeleteSlotType
  1072  // call is successful.
  1073  //
  1074  // This operation requires permission for the lex:DeleteSlotType action.
  1075  //
  1076  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1077  // with awserr.Error's Code and Message methods to get detailed information about
  1078  // the error.
  1079  //
  1080  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1081  // API operation DeleteSlotType for usage and error information.
  1082  //
  1083  // Returned Error Types:
  1084  //   * NotFoundException
  1085  //   The resource specified in the request was not found. Check the resource and
  1086  //   try again.
  1087  //
  1088  //   * ConflictException
  1089  //   There was a conflict processing the request. Try your request again.
  1090  //
  1091  //   * LimitExceededException
  1092  //   The request exceeded a limit. Try your request again.
  1093  //
  1094  //   * InternalFailureException
  1095  //   An internal Amazon Lex error occurred. Try your request again.
  1096  //
  1097  //   * BadRequestException
  1098  //   The request is not well formed. For example, a value is invalid or a required
  1099  //   field is missing. Check the field values, and try again.
  1100  //
  1101  //   * ResourceInUseException
  1102  //   The resource that you are attempting to delete is referred to by another
  1103  //   resource. Use this information to remove references to the resource that
  1104  //   you are trying to delete.
  1105  //
  1106  //   The body of the exception contains a JSON object that describes the resource.
  1107  //
  1108  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
  1109  //
  1110  //   "resourceReference": {
  1111  //
  1112  //   "name": string, "version": string } }
  1113  //
  1114  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
  1115  func (c *LexModelBuildingService) DeleteSlotType(input *DeleteSlotTypeInput) (*DeleteSlotTypeOutput, error) {
  1116  	req, out := c.DeleteSlotTypeRequest(input)
  1117  	return out, req.Send()
  1118  }
  1119  
  1120  // DeleteSlotTypeWithContext is the same as DeleteSlotType with the addition of
  1121  // the ability to pass a context and additional request options.
  1122  //
  1123  // See DeleteSlotType for details on how to use this API operation.
  1124  //
  1125  // The context must be non-nil and will be used for request cancellation. If
  1126  // the context is nil a panic will occur. In the future the SDK may create
  1127  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1128  // for more information on using Contexts.
  1129  func (c *LexModelBuildingService) DeleteSlotTypeWithContext(ctx aws.Context, input *DeleteSlotTypeInput, opts ...request.Option) (*DeleteSlotTypeOutput, error) {
  1130  	req, out := c.DeleteSlotTypeRequest(input)
  1131  	req.SetContext(ctx)
  1132  	req.ApplyOptions(opts...)
  1133  	return out, req.Send()
  1134  }
  1135  
  1136  const opDeleteSlotTypeVersion = "DeleteSlotTypeVersion"
  1137  
  1138  // DeleteSlotTypeVersionRequest generates a "aws/request.Request" representing the
  1139  // client's request for the DeleteSlotTypeVersion operation. The "output" return
  1140  // value will be populated with the request's response once the request completes
  1141  // successfully.
  1142  //
  1143  // Use "Send" method on the returned Request to send the API call to the service.
  1144  // the "output" return value is not valid until after Send returns without error.
  1145  //
  1146  // See DeleteSlotTypeVersion for more information on using the DeleteSlotTypeVersion
  1147  // API call, and error handling.
  1148  //
  1149  // This method is useful when you want to inject custom logic or configuration
  1150  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1151  //
  1152  //
  1153  //    // Example sending a request using the DeleteSlotTypeVersionRequest method.
  1154  //    req, resp := client.DeleteSlotTypeVersionRequest(params)
  1155  //
  1156  //    err := req.Send()
  1157  //    if err == nil { // resp is now filled
  1158  //        fmt.Println(resp)
  1159  //    }
  1160  //
  1161  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
  1162  func (c *LexModelBuildingService) DeleteSlotTypeVersionRequest(input *DeleteSlotTypeVersionInput) (req *request.Request, output *DeleteSlotTypeVersionOutput) {
  1163  	op := &request.Operation{
  1164  		Name:       opDeleteSlotTypeVersion,
  1165  		HTTPMethod: "DELETE",
  1166  		HTTPPath:   "/slottypes/{name}/version/{version}",
  1167  	}
  1168  
  1169  	if input == nil {
  1170  		input = &DeleteSlotTypeVersionInput{}
  1171  	}
  1172  
  1173  	output = &DeleteSlotTypeVersionOutput{}
  1174  	req = c.newRequest(op, input, output)
  1175  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1176  	return
  1177  }
  1178  
  1179  // DeleteSlotTypeVersion API operation for Amazon Lex Model Building Service.
  1180  //
  1181  // Deletes a specific version of a slot type. To delete all versions of a slot
  1182  // type, use the DeleteSlotType operation.
  1183  //
  1184  // This operation requires permissions for the lex:DeleteSlotTypeVersion action.
  1185  //
  1186  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1187  // with awserr.Error's Code and Message methods to get detailed information about
  1188  // the error.
  1189  //
  1190  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1191  // API operation DeleteSlotTypeVersion for usage and error information.
  1192  //
  1193  // Returned Error Types:
  1194  //   * NotFoundException
  1195  //   The resource specified in the request was not found. Check the resource and
  1196  //   try again.
  1197  //
  1198  //   * ConflictException
  1199  //   There was a conflict processing the request. Try your request again.
  1200  //
  1201  //   * LimitExceededException
  1202  //   The request exceeded a limit. Try your request again.
  1203  //
  1204  //   * InternalFailureException
  1205  //   An internal Amazon Lex error occurred. Try your request again.
  1206  //
  1207  //   * BadRequestException
  1208  //   The request is not well formed. For example, a value is invalid or a required
  1209  //   field is missing. Check the field values, and try again.
  1210  //
  1211  //   * ResourceInUseException
  1212  //   The resource that you are attempting to delete is referred to by another
  1213  //   resource. Use this information to remove references to the resource that
  1214  //   you are trying to delete.
  1215  //
  1216  //   The body of the exception contains a JSON object that describes the resource.
  1217  //
  1218  //   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
  1219  //
  1220  //   "resourceReference": {
  1221  //
  1222  //   "name": string, "version": string } }
  1223  //
  1224  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
  1225  func (c *LexModelBuildingService) DeleteSlotTypeVersion(input *DeleteSlotTypeVersionInput) (*DeleteSlotTypeVersionOutput, error) {
  1226  	req, out := c.DeleteSlotTypeVersionRequest(input)
  1227  	return out, req.Send()
  1228  }
  1229  
  1230  // DeleteSlotTypeVersionWithContext is the same as DeleteSlotTypeVersion with the addition of
  1231  // the ability to pass a context and additional request options.
  1232  //
  1233  // See DeleteSlotTypeVersion for details on how to use this API operation.
  1234  //
  1235  // The context must be non-nil and will be used for request cancellation. If
  1236  // the context is nil a panic will occur. In the future the SDK may create
  1237  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1238  // for more information on using Contexts.
  1239  func (c *LexModelBuildingService) DeleteSlotTypeVersionWithContext(ctx aws.Context, input *DeleteSlotTypeVersionInput, opts ...request.Option) (*DeleteSlotTypeVersionOutput, error) {
  1240  	req, out := c.DeleteSlotTypeVersionRequest(input)
  1241  	req.SetContext(ctx)
  1242  	req.ApplyOptions(opts...)
  1243  	return out, req.Send()
  1244  }
  1245  
  1246  const opDeleteUtterances = "DeleteUtterances"
  1247  
  1248  // DeleteUtterancesRequest generates a "aws/request.Request" representing the
  1249  // client's request for the DeleteUtterances operation. The "output" return
  1250  // value will be populated with the request's response once the request completes
  1251  // successfully.
  1252  //
  1253  // Use "Send" method on the returned Request to send the API call to the service.
  1254  // the "output" return value is not valid until after Send returns without error.
  1255  //
  1256  // See DeleteUtterances for more information on using the DeleteUtterances
  1257  // API call, and error handling.
  1258  //
  1259  // This method is useful when you want to inject custom logic or configuration
  1260  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1261  //
  1262  //
  1263  //    // Example sending a request using the DeleteUtterancesRequest method.
  1264  //    req, resp := client.DeleteUtterancesRequest(params)
  1265  //
  1266  //    err := req.Send()
  1267  //    if err == nil { // resp is now filled
  1268  //        fmt.Println(resp)
  1269  //    }
  1270  //
  1271  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
  1272  func (c *LexModelBuildingService) DeleteUtterancesRequest(input *DeleteUtterancesInput) (req *request.Request, output *DeleteUtterancesOutput) {
  1273  	op := &request.Operation{
  1274  		Name:       opDeleteUtterances,
  1275  		HTTPMethod: "DELETE",
  1276  		HTTPPath:   "/bots/{botName}/utterances/{userId}",
  1277  	}
  1278  
  1279  	if input == nil {
  1280  		input = &DeleteUtterancesInput{}
  1281  	}
  1282  
  1283  	output = &DeleteUtterancesOutput{}
  1284  	req = c.newRequest(op, input, output)
  1285  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1286  	return
  1287  }
  1288  
  1289  // DeleteUtterances API operation for Amazon Lex Model Building Service.
  1290  //
  1291  // Deletes stored utterances.
  1292  //
  1293  // Amazon Lex stores the utterances that users send to your bot. Utterances
  1294  // are stored for 15 days for use with the GetUtterancesView operation, and
  1295  // then stored indefinitely for use in improving the ability of your bot to
  1296  // respond to user input.
  1297  //
  1298  // Use the DeleteUtterances operation to manually delete stored utterances for
  1299  // a specific user. When you use the DeleteUtterances operation, utterances
  1300  // stored for improving your bot's ability to respond to user input are deleted
  1301  // immediately. Utterances stored for use with the GetUtterancesView operation
  1302  // are deleted after 15 days.
  1303  //
  1304  // This operation requires permissions for the lex:DeleteUtterances action.
  1305  //
  1306  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1307  // with awserr.Error's Code and Message methods to get detailed information about
  1308  // the error.
  1309  //
  1310  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1311  // API operation DeleteUtterances for usage and error information.
  1312  //
  1313  // Returned Error Types:
  1314  //   * NotFoundException
  1315  //   The resource specified in the request was not found. Check the resource and
  1316  //   try again.
  1317  //
  1318  //   * LimitExceededException
  1319  //   The request exceeded a limit. Try your request again.
  1320  //
  1321  //   * InternalFailureException
  1322  //   An internal Amazon Lex error occurred. Try your request again.
  1323  //
  1324  //   * BadRequestException
  1325  //   The request is not well formed. For example, a value is invalid or a required
  1326  //   field is missing. Check the field values, and try again.
  1327  //
  1328  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
  1329  func (c *LexModelBuildingService) DeleteUtterances(input *DeleteUtterancesInput) (*DeleteUtterancesOutput, error) {
  1330  	req, out := c.DeleteUtterancesRequest(input)
  1331  	return out, req.Send()
  1332  }
  1333  
  1334  // DeleteUtterancesWithContext is the same as DeleteUtterances with the addition of
  1335  // the ability to pass a context and additional request options.
  1336  //
  1337  // See DeleteUtterances for details on how to use this API operation.
  1338  //
  1339  // The context must be non-nil and will be used for request cancellation. If
  1340  // the context is nil a panic will occur. In the future the SDK may create
  1341  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1342  // for more information on using Contexts.
  1343  func (c *LexModelBuildingService) DeleteUtterancesWithContext(ctx aws.Context, input *DeleteUtterancesInput, opts ...request.Option) (*DeleteUtterancesOutput, error) {
  1344  	req, out := c.DeleteUtterancesRequest(input)
  1345  	req.SetContext(ctx)
  1346  	req.ApplyOptions(opts...)
  1347  	return out, req.Send()
  1348  }
  1349  
  1350  const opGetBot = "GetBot"
  1351  
  1352  // GetBotRequest generates a "aws/request.Request" representing the
  1353  // client's request for the GetBot operation. The "output" return
  1354  // value will be populated with the request's response once the request completes
  1355  // successfully.
  1356  //
  1357  // Use "Send" method on the returned Request to send the API call to the service.
  1358  // the "output" return value is not valid until after Send returns without error.
  1359  //
  1360  // See GetBot for more information on using the GetBot
  1361  // API call, and error handling.
  1362  //
  1363  // This method is useful when you want to inject custom logic or configuration
  1364  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1365  //
  1366  //
  1367  //    // Example sending a request using the GetBotRequest method.
  1368  //    req, resp := client.GetBotRequest(params)
  1369  //
  1370  //    err := req.Send()
  1371  //    if err == nil { // resp is now filled
  1372  //        fmt.Println(resp)
  1373  //    }
  1374  //
  1375  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
  1376  func (c *LexModelBuildingService) GetBotRequest(input *GetBotInput) (req *request.Request, output *GetBotOutput) {
  1377  	op := &request.Operation{
  1378  		Name:       opGetBot,
  1379  		HTTPMethod: "GET",
  1380  		HTTPPath:   "/bots/{name}/versions/{versionoralias}",
  1381  	}
  1382  
  1383  	if input == nil {
  1384  		input = &GetBotInput{}
  1385  	}
  1386  
  1387  	output = &GetBotOutput{}
  1388  	req = c.newRequest(op, input, output)
  1389  	return
  1390  }
  1391  
  1392  // GetBot API operation for Amazon Lex Model Building Service.
  1393  //
  1394  // Returns metadata information for a specific bot. You must provide the bot
  1395  // name and the bot version or alias.
  1396  //
  1397  // This operation requires permissions for the lex:GetBot action.
  1398  //
  1399  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1400  // with awserr.Error's Code and Message methods to get detailed information about
  1401  // the error.
  1402  //
  1403  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1404  // API operation GetBot for usage and error information.
  1405  //
  1406  // Returned Error Types:
  1407  //   * NotFoundException
  1408  //   The resource specified in the request was not found. Check the resource and
  1409  //   try again.
  1410  //
  1411  //   * LimitExceededException
  1412  //   The request exceeded a limit. Try your request again.
  1413  //
  1414  //   * InternalFailureException
  1415  //   An internal Amazon Lex error occurred. Try your request again.
  1416  //
  1417  //   * BadRequestException
  1418  //   The request is not well formed. For example, a value is invalid or a required
  1419  //   field is missing. Check the field values, and try again.
  1420  //
  1421  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
  1422  func (c *LexModelBuildingService) GetBot(input *GetBotInput) (*GetBotOutput, error) {
  1423  	req, out := c.GetBotRequest(input)
  1424  	return out, req.Send()
  1425  }
  1426  
  1427  // GetBotWithContext is the same as GetBot with the addition of
  1428  // the ability to pass a context and additional request options.
  1429  //
  1430  // See GetBot for details on how to use this API operation.
  1431  //
  1432  // The context must be non-nil and will be used for request cancellation. If
  1433  // the context is nil a panic will occur. In the future the SDK may create
  1434  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1435  // for more information on using Contexts.
  1436  func (c *LexModelBuildingService) GetBotWithContext(ctx aws.Context, input *GetBotInput, opts ...request.Option) (*GetBotOutput, error) {
  1437  	req, out := c.GetBotRequest(input)
  1438  	req.SetContext(ctx)
  1439  	req.ApplyOptions(opts...)
  1440  	return out, req.Send()
  1441  }
  1442  
  1443  const opGetBotAlias = "GetBotAlias"
  1444  
  1445  // GetBotAliasRequest generates a "aws/request.Request" representing the
  1446  // client's request for the GetBotAlias operation. The "output" return
  1447  // value will be populated with the request's response once the request completes
  1448  // successfully.
  1449  //
  1450  // Use "Send" method on the returned Request to send the API call to the service.
  1451  // the "output" return value is not valid until after Send returns without error.
  1452  //
  1453  // See GetBotAlias for more information on using the GetBotAlias
  1454  // API call, and error handling.
  1455  //
  1456  // This method is useful when you want to inject custom logic or configuration
  1457  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1458  //
  1459  //
  1460  //    // Example sending a request using the GetBotAliasRequest method.
  1461  //    req, resp := client.GetBotAliasRequest(params)
  1462  //
  1463  //    err := req.Send()
  1464  //    if err == nil { // resp is now filled
  1465  //        fmt.Println(resp)
  1466  //    }
  1467  //
  1468  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
  1469  func (c *LexModelBuildingService) GetBotAliasRequest(input *GetBotAliasInput) (req *request.Request, output *GetBotAliasOutput) {
  1470  	op := &request.Operation{
  1471  		Name:       opGetBotAlias,
  1472  		HTTPMethod: "GET",
  1473  		HTTPPath:   "/bots/{botName}/aliases/{name}",
  1474  	}
  1475  
  1476  	if input == nil {
  1477  		input = &GetBotAliasInput{}
  1478  	}
  1479  
  1480  	output = &GetBotAliasOutput{}
  1481  	req = c.newRequest(op, input, output)
  1482  	return
  1483  }
  1484  
  1485  // GetBotAlias API operation for Amazon Lex Model Building Service.
  1486  //
  1487  // Returns information about an Amazon Lex bot alias. For more information about
  1488  // aliases, see versioning-aliases.
  1489  //
  1490  // This operation requires permissions for the lex:GetBotAlias action.
  1491  //
  1492  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1493  // with awserr.Error's Code and Message methods to get detailed information about
  1494  // the error.
  1495  //
  1496  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1497  // API operation GetBotAlias for usage and error information.
  1498  //
  1499  // Returned Error Types:
  1500  //   * NotFoundException
  1501  //   The resource specified in the request was not found. Check the resource and
  1502  //   try again.
  1503  //
  1504  //   * LimitExceededException
  1505  //   The request exceeded a limit. Try your request again.
  1506  //
  1507  //   * InternalFailureException
  1508  //   An internal Amazon Lex error occurred. Try your request again.
  1509  //
  1510  //   * BadRequestException
  1511  //   The request is not well formed. For example, a value is invalid or a required
  1512  //   field is missing. Check the field values, and try again.
  1513  //
  1514  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
  1515  func (c *LexModelBuildingService) GetBotAlias(input *GetBotAliasInput) (*GetBotAliasOutput, error) {
  1516  	req, out := c.GetBotAliasRequest(input)
  1517  	return out, req.Send()
  1518  }
  1519  
  1520  // GetBotAliasWithContext is the same as GetBotAlias with the addition of
  1521  // the ability to pass a context and additional request options.
  1522  //
  1523  // See GetBotAlias for details on how to use this API operation.
  1524  //
  1525  // The context must be non-nil and will be used for request cancellation. If
  1526  // the context is nil a panic will occur. In the future the SDK may create
  1527  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1528  // for more information on using Contexts.
  1529  func (c *LexModelBuildingService) GetBotAliasWithContext(ctx aws.Context, input *GetBotAliasInput, opts ...request.Option) (*GetBotAliasOutput, error) {
  1530  	req, out := c.GetBotAliasRequest(input)
  1531  	req.SetContext(ctx)
  1532  	req.ApplyOptions(opts...)
  1533  	return out, req.Send()
  1534  }
  1535  
  1536  const opGetBotAliases = "GetBotAliases"
  1537  
  1538  // GetBotAliasesRequest generates a "aws/request.Request" representing the
  1539  // client's request for the GetBotAliases operation. The "output" return
  1540  // value will be populated with the request's response once the request completes
  1541  // successfully.
  1542  //
  1543  // Use "Send" method on the returned Request to send the API call to the service.
  1544  // the "output" return value is not valid until after Send returns without error.
  1545  //
  1546  // See GetBotAliases for more information on using the GetBotAliases
  1547  // API call, and error handling.
  1548  //
  1549  // This method is useful when you want to inject custom logic or configuration
  1550  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1551  //
  1552  //
  1553  //    // Example sending a request using the GetBotAliasesRequest method.
  1554  //    req, resp := client.GetBotAliasesRequest(params)
  1555  //
  1556  //    err := req.Send()
  1557  //    if err == nil { // resp is now filled
  1558  //        fmt.Println(resp)
  1559  //    }
  1560  //
  1561  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
  1562  func (c *LexModelBuildingService) GetBotAliasesRequest(input *GetBotAliasesInput) (req *request.Request, output *GetBotAliasesOutput) {
  1563  	op := &request.Operation{
  1564  		Name:       opGetBotAliases,
  1565  		HTTPMethod: "GET",
  1566  		HTTPPath:   "/bots/{botName}/aliases/",
  1567  		Paginator: &request.Paginator{
  1568  			InputTokens:     []string{"nextToken"},
  1569  			OutputTokens:    []string{"nextToken"},
  1570  			LimitToken:      "maxResults",
  1571  			TruncationToken: "",
  1572  		},
  1573  	}
  1574  
  1575  	if input == nil {
  1576  		input = &GetBotAliasesInput{}
  1577  	}
  1578  
  1579  	output = &GetBotAliasesOutput{}
  1580  	req = c.newRequest(op, input, output)
  1581  	return
  1582  }
  1583  
  1584  // GetBotAliases API operation for Amazon Lex Model Building Service.
  1585  //
  1586  // Returns a list of aliases for a specified Amazon Lex bot.
  1587  //
  1588  // This operation requires permissions for the lex:GetBotAliases action.
  1589  //
  1590  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1591  // with awserr.Error's Code and Message methods to get detailed information about
  1592  // the error.
  1593  //
  1594  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1595  // API operation GetBotAliases for usage and error information.
  1596  //
  1597  // Returned Error Types:
  1598  //   * LimitExceededException
  1599  //   The request exceeded a limit. Try your request again.
  1600  //
  1601  //   * InternalFailureException
  1602  //   An internal Amazon Lex error occurred. Try your request again.
  1603  //
  1604  //   * BadRequestException
  1605  //   The request is not well formed. For example, a value is invalid or a required
  1606  //   field is missing. Check the field values, and try again.
  1607  //
  1608  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
  1609  func (c *LexModelBuildingService) GetBotAliases(input *GetBotAliasesInput) (*GetBotAliasesOutput, error) {
  1610  	req, out := c.GetBotAliasesRequest(input)
  1611  	return out, req.Send()
  1612  }
  1613  
  1614  // GetBotAliasesWithContext is the same as GetBotAliases with the addition of
  1615  // the ability to pass a context and additional request options.
  1616  //
  1617  // See GetBotAliases for details on how to use this API operation.
  1618  //
  1619  // The context must be non-nil and will be used for request cancellation. If
  1620  // the context is nil a panic will occur. In the future the SDK may create
  1621  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1622  // for more information on using Contexts.
  1623  func (c *LexModelBuildingService) GetBotAliasesWithContext(ctx aws.Context, input *GetBotAliasesInput, opts ...request.Option) (*GetBotAliasesOutput, error) {
  1624  	req, out := c.GetBotAliasesRequest(input)
  1625  	req.SetContext(ctx)
  1626  	req.ApplyOptions(opts...)
  1627  	return out, req.Send()
  1628  }
  1629  
  1630  // GetBotAliasesPages iterates over the pages of a GetBotAliases operation,
  1631  // calling the "fn" function with the response data for each page. To stop
  1632  // iterating, return false from the fn function.
  1633  //
  1634  // See GetBotAliases method for more information on how to use this operation.
  1635  //
  1636  // Note: This operation can generate multiple requests to a service.
  1637  //
  1638  //    // Example iterating over at most 3 pages of a GetBotAliases operation.
  1639  //    pageNum := 0
  1640  //    err := client.GetBotAliasesPages(params,
  1641  //        func(page *lexmodelbuildingservice.GetBotAliasesOutput, lastPage bool) bool {
  1642  //            pageNum++
  1643  //            fmt.Println(page)
  1644  //            return pageNum <= 3
  1645  //        })
  1646  //
  1647  func (c *LexModelBuildingService) GetBotAliasesPages(input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool) error {
  1648  	return c.GetBotAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
  1649  }
  1650  
  1651  // GetBotAliasesPagesWithContext same as GetBotAliasesPages except
  1652  // it takes a Context and allows setting request options on the pages.
  1653  //
  1654  // The context must be non-nil and will be used for request cancellation. If
  1655  // the context is nil a panic will occur. In the future the SDK may create
  1656  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1657  // for more information on using Contexts.
  1658  func (c *LexModelBuildingService) GetBotAliasesPagesWithContext(ctx aws.Context, input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool, opts ...request.Option) error {
  1659  	p := request.Pagination{
  1660  		NewRequest: func() (*request.Request, error) {
  1661  			var inCpy *GetBotAliasesInput
  1662  			if input != nil {
  1663  				tmp := *input
  1664  				inCpy = &tmp
  1665  			}
  1666  			req, _ := c.GetBotAliasesRequest(inCpy)
  1667  			req.SetContext(ctx)
  1668  			req.ApplyOptions(opts...)
  1669  			return req, nil
  1670  		},
  1671  	}
  1672  
  1673  	for p.Next() {
  1674  		if !fn(p.Page().(*GetBotAliasesOutput), !p.HasNextPage()) {
  1675  			break
  1676  		}
  1677  	}
  1678  
  1679  	return p.Err()
  1680  }
  1681  
  1682  const opGetBotChannelAssociation = "GetBotChannelAssociation"
  1683  
  1684  // GetBotChannelAssociationRequest generates a "aws/request.Request" representing the
  1685  // client's request for the GetBotChannelAssociation operation. The "output" return
  1686  // value will be populated with the request's response once the request completes
  1687  // successfully.
  1688  //
  1689  // Use "Send" method on the returned Request to send the API call to the service.
  1690  // the "output" return value is not valid until after Send returns without error.
  1691  //
  1692  // See GetBotChannelAssociation for more information on using the GetBotChannelAssociation
  1693  // API call, and error handling.
  1694  //
  1695  // This method is useful when you want to inject custom logic or configuration
  1696  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1697  //
  1698  //
  1699  //    // Example sending a request using the GetBotChannelAssociationRequest method.
  1700  //    req, resp := client.GetBotChannelAssociationRequest(params)
  1701  //
  1702  //    err := req.Send()
  1703  //    if err == nil { // resp is now filled
  1704  //        fmt.Println(resp)
  1705  //    }
  1706  //
  1707  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
  1708  func (c *LexModelBuildingService) GetBotChannelAssociationRequest(input *GetBotChannelAssociationInput) (req *request.Request, output *GetBotChannelAssociationOutput) {
  1709  	op := &request.Operation{
  1710  		Name:       opGetBotChannelAssociation,
  1711  		HTTPMethod: "GET",
  1712  		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
  1713  	}
  1714  
  1715  	if input == nil {
  1716  		input = &GetBotChannelAssociationInput{}
  1717  	}
  1718  
  1719  	output = &GetBotChannelAssociationOutput{}
  1720  	req = c.newRequest(op, input, output)
  1721  	return
  1722  }
  1723  
  1724  // GetBotChannelAssociation API operation for Amazon Lex Model Building Service.
  1725  //
  1726  // Returns information about the association between an Amazon Lex bot and a
  1727  // messaging platform.
  1728  //
  1729  // This operation requires permissions for the lex:GetBotChannelAssociation
  1730  // action.
  1731  //
  1732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1733  // with awserr.Error's Code and Message methods to get detailed information about
  1734  // the error.
  1735  //
  1736  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1737  // API operation GetBotChannelAssociation for usage and error information.
  1738  //
  1739  // Returned Error Types:
  1740  //   * NotFoundException
  1741  //   The resource specified in the request was not found. Check the resource and
  1742  //   try again.
  1743  //
  1744  //   * LimitExceededException
  1745  //   The request exceeded a limit. Try your request again.
  1746  //
  1747  //   * InternalFailureException
  1748  //   An internal Amazon Lex error occurred. Try your request again.
  1749  //
  1750  //   * BadRequestException
  1751  //   The request is not well formed. For example, a value is invalid or a required
  1752  //   field is missing. Check the field values, and try again.
  1753  //
  1754  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
  1755  func (c *LexModelBuildingService) GetBotChannelAssociation(input *GetBotChannelAssociationInput) (*GetBotChannelAssociationOutput, error) {
  1756  	req, out := c.GetBotChannelAssociationRequest(input)
  1757  	return out, req.Send()
  1758  }
  1759  
  1760  // GetBotChannelAssociationWithContext is the same as GetBotChannelAssociation with the addition of
  1761  // the ability to pass a context and additional request options.
  1762  //
  1763  // See GetBotChannelAssociation for details on how to use this API operation.
  1764  //
  1765  // The context must be non-nil and will be used for request cancellation. If
  1766  // the context is nil a panic will occur. In the future the SDK may create
  1767  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1768  // for more information on using Contexts.
  1769  func (c *LexModelBuildingService) GetBotChannelAssociationWithContext(ctx aws.Context, input *GetBotChannelAssociationInput, opts ...request.Option) (*GetBotChannelAssociationOutput, error) {
  1770  	req, out := c.GetBotChannelAssociationRequest(input)
  1771  	req.SetContext(ctx)
  1772  	req.ApplyOptions(opts...)
  1773  	return out, req.Send()
  1774  }
  1775  
  1776  const opGetBotChannelAssociations = "GetBotChannelAssociations"
  1777  
  1778  // GetBotChannelAssociationsRequest generates a "aws/request.Request" representing the
  1779  // client's request for the GetBotChannelAssociations operation. The "output" return
  1780  // value will be populated with the request's response once the request completes
  1781  // successfully.
  1782  //
  1783  // Use "Send" method on the returned Request to send the API call to the service.
  1784  // the "output" return value is not valid until after Send returns without error.
  1785  //
  1786  // See GetBotChannelAssociations for more information on using the GetBotChannelAssociations
  1787  // API call, and error handling.
  1788  //
  1789  // This method is useful when you want to inject custom logic or configuration
  1790  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1791  //
  1792  //
  1793  //    // Example sending a request using the GetBotChannelAssociationsRequest method.
  1794  //    req, resp := client.GetBotChannelAssociationsRequest(params)
  1795  //
  1796  //    err := req.Send()
  1797  //    if err == nil { // resp is now filled
  1798  //        fmt.Println(resp)
  1799  //    }
  1800  //
  1801  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
  1802  func (c *LexModelBuildingService) GetBotChannelAssociationsRequest(input *GetBotChannelAssociationsInput) (req *request.Request, output *GetBotChannelAssociationsOutput) {
  1803  	op := &request.Operation{
  1804  		Name:       opGetBotChannelAssociations,
  1805  		HTTPMethod: "GET",
  1806  		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/",
  1807  		Paginator: &request.Paginator{
  1808  			InputTokens:     []string{"nextToken"},
  1809  			OutputTokens:    []string{"nextToken"},
  1810  			LimitToken:      "maxResults",
  1811  			TruncationToken: "",
  1812  		},
  1813  	}
  1814  
  1815  	if input == nil {
  1816  		input = &GetBotChannelAssociationsInput{}
  1817  	}
  1818  
  1819  	output = &GetBotChannelAssociationsOutput{}
  1820  	req = c.newRequest(op, input, output)
  1821  	return
  1822  }
  1823  
  1824  // GetBotChannelAssociations API operation for Amazon Lex Model Building Service.
  1825  //
  1826  // Returns a list of all of the channels associated with the specified bot.
  1827  //
  1828  // The GetBotChannelAssociations operation requires permissions for the lex:GetBotChannelAssociations
  1829  // action.
  1830  //
  1831  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1832  // with awserr.Error's Code and Message methods to get detailed information about
  1833  // the error.
  1834  //
  1835  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1836  // API operation GetBotChannelAssociations for usage and error information.
  1837  //
  1838  // Returned Error Types:
  1839  //   * LimitExceededException
  1840  //   The request exceeded a limit. Try your request again.
  1841  //
  1842  //   * InternalFailureException
  1843  //   An internal Amazon Lex error occurred. Try your request again.
  1844  //
  1845  //   * BadRequestException
  1846  //   The request is not well formed. For example, a value is invalid or a required
  1847  //   field is missing. Check the field values, and try again.
  1848  //
  1849  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
  1850  func (c *LexModelBuildingService) GetBotChannelAssociations(input *GetBotChannelAssociationsInput) (*GetBotChannelAssociationsOutput, error) {
  1851  	req, out := c.GetBotChannelAssociationsRequest(input)
  1852  	return out, req.Send()
  1853  }
  1854  
  1855  // GetBotChannelAssociationsWithContext is the same as GetBotChannelAssociations with the addition of
  1856  // the ability to pass a context and additional request options.
  1857  //
  1858  // See GetBotChannelAssociations for details on how to use this API operation.
  1859  //
  1860  // The context must be non-nil and will be used for request cancellation. If
  1861  // the context is nil a panic will occur. In the future the SDK may create
  1862  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1863  // for more information on using Contexts.
  1864  func (c *LexModelBuildingService) GetBotChannelAssociationsWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, opts ...request.Option) (*GetBotChannelAssociationsOutput, error) {
  1865  	req, out := c.GetBotChannelAssociationsRequest(input)
  1866  	req.SetContext(ctx)
  1867  	req.ApplyOptions(opts...)
  1868  	return out, req.Send()
  1869  }
  1870  
  1871  // GetBotChannelAssociationsPages iterates over the pages of a GetBotChannelAssociations operation,
  1872  // calling the "fn" function with the response data for each page. To stop
  1873  // iterating, return false from the fn function.
  1874  //
  1875  // See GetBotChannelAssociations method for more information on how to use this operation.
  1876  //
  1877  // Note: This operation can generate multiple requests to a service.
  1878  //
  1879  //    // Example iterating over at most 3 pages of a GetBotChannelAssociations operation.
  1880  //    pageNum := 0
  1881  //    err := client.GetBotChannelAssociationsPages(params,
  1882  //        func(page *lexmodelbuildingservice.GetBotChannelAssociationsOutput, lastPage bool) bool {
  1883  //            pageNum++
  1884  //            fmt.Println(page)
  1885  //            return pageNum <= 3
  1886  //        })
  1887  //
  1888  func (c *LexModelBuildingService) GetBotChannelAssociationsPages(input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool) error {
  1889  	return c.GetBotChannelAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
  1890  }
  1891  
  1892  // GetBotChannelAssociationsPagesWithContext same as GetBotChannelAssociationsPages except
  1893  // it takes a Context and allows setting request options on the pages.
  1894  //
  1895  // The context must be non-nil and will be used for request cancellation. If
  1896  // the context is nil a panic will occur. In the future the SDK may create
  1897  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1898  // for more information on using Contexts.
  1899  func (c *LexModelBuildingService) GetBotChannelAssociationsPagesWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool, opts ...request.Option) error {
  1900  	p := request.Pagination{
  1901  		NewRequest: func() (*request.Request, error) {
  1902  			var inCpy *GetBotChannelAssociationsInput
  1903  			if input != nil {
  1904  				tmp := *input
  1905  				inCpy = &tmp
  1906  			}
  1907  			req, _ := c.GetBotChannelAssociationsRequest(inCpy)
  1908  			req.SetContext(ctx)
  1909  			req.ApplyOptions(opts...)
  1910  			return req, nil
  1911  		},
  1912  	}
  1913  
  1914  	for p.Next() {
  1915  		if !fn(p.Page().(*GetBotChannelAssociationsOutput), !p.HasNextPage()) {
  1916  			break
  1917  		}
  1918  	}
  1919  
  1920  	return p.Err()
  1921  }
  1922  
  1923  const opGetBotVersions = "GetBotVersions"
  1924  
  1925  // GetBotVersionsRequest generates a "aws/request.Request" representing the
  1926  // client's request for the GetBotVersions operation. The "output" return
  1927  // value will be populated with the request's response once the request completes
  1928  // successfully.
  1929  //
  1930  // Use "Send" method on the returned Request to send the API call to the service.
  1931  // the "output" return value is not valid until after Send returns without error.
  1932  //
  1933  // See GetBotVersions for more information on using the GetBotVersions
  1934  // API call, and error handling.
  1935  //
  1936  // This method is useful when you want to inject custom logic or configuration
  1937  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1938  //
  1939  //
  1940  //    // Example sending a request using the GetBotVersionsRequest method.
  1941  //    req, resp := client.GetBotVersionsRequest(params)
  1942  //
  1943  //    err := req.Send()
  1944  //    if err == nil { // resp is now filled
  1945  //        fmt.Println(resp)
  1946  //    }
  1947  //
  1948  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
  1949  func (c *LexModelBuildingService) GetBotVersionsRequest(input *GetBotVersionsInput) (req *request.Request, output *GetBotVersionsOutput) {
  1950  	op := &request.Operation{
  1951  		Name:       opGetBotVersions,
  1952  		HTTPMethod: "GET",
  1953  		HTTPPath:   "/bots/{name}/versions/",
  1954  		Paginator: &request.Paginator{
  1955  			InputTokens:     []string{"nextToken"},
  1956  			OutputTokens:    []string{"nextToken"},
  1957  			LimitToken:      "maxResults",
  1958  			TruncationToken: "",
  1959  		},
  1960  	}
  1961  
  1962  	if input == nil {
  1963  		input = &GetBotVersionsInput{}
  1964  	}
  1965  
  1966  	output = &GetBotVersionsOutput{}
  1967  	req = c.newRequest(op, input, output)
  1968  	return
  1969  }
  1970  
  1971  // GetBotVersions API operation for Amazon Lex Model Building Service.
  1972  //
  1973  // Gets information about all of the versions of a bot.
  1974  //
  1975  // The GetBotVersions operation returns a BotMetadata object for each version
  1976  // of a bot. For example, if a bot has three numbered versions, the GetBotVersions
  1977  // operation returns four BotMetadata objects in the response, one for each
  1978  // numbered version and one for the $LATEST version.
  1979  //
  1980  // The GetBotVersions operation always returns at least one version, the $LATEST
  1981  // version.
  1982  //
  1983  // This operation requires permissions for the lex:GetBotVersions action.
  1984  //
  1985  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1986  // with awserr.Error's Code and Message methods to get detailed information about
  1987  // the error.
  1988  //
  1989  // See the AWS API reference guide for Amazon Lex Model Building Service's
  1990  // API operation GetBotVersions for usage and error information.
  1991  //
  1992  // Returned Error Types:
  1993  //   * NotFoundException
  1994  //   The resource specified in the request was not found. Check the resource and
  1995  //   try again.
  1996  //
  1997  //   * LimitExceededException
  1998  //   The request exceeded a limit. Try your request again.
  1999  //
  2000  //   * InternalFailureException
  2001  //   An internal Amazon Lex error occurred. Try your request again.
  2002  //
  2003  //   * BadRequestException
  2004  //   The request is not well formed. For example, a value is invalid or a required
  2005  //   field is missing. Check the field values, and try again.
  2006  //
  2007  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
  2008  func (c *LexModelBuildingService) GetBotVersions(input *GetBotVersionsInput) (*GetBotVersionsOutput, error) {
  2009  	req, out := c.GetBotVersionsRequest(input)
  2010  	return out, req.Send()
  2011  }
  2012  
  2013  // GetBotVersionsWithContext is the same as GetBotVersions with the addition of
  2014  // the ability to pass a context and additional request options.
  2015  //
  2016  // See GetBotVersions for details on how to use this API operation.
  2017  //
  2018  // The context must be non-nil and will be used for request cancellation. If
  2019  // the context is nil a panic will occur. In the future the SDK may create
  2020  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2021  // for more information on using Contexts.
  2022  func (c *LexModelBuildingService) GetBotVersionsWithContext(ctx aws.Context, input *GetBotVersionsInput, opts ...request.Option) (*GetBotVersionsOutput, error) {
  2023  	req, out := c.GetBotVersionsRequest(input)
  2024  	req.SetContext(ctx)
  2025  	req.ApplyOptions(opts...)
  2026  	return out, req.Send()
  2027  }
  2028  
  2029  // GetBotVersionsPages iterates over the pages of a GetBotVersions operation,
  2030  // calling the "fn" function with the response data for each page. To stop
  2031  // iterating, return false from the fn function.
  2032  //
  2033  // See GetBotVersions method for more information on how to use this operation.
  2034  //
  2035  // Note: This operation can generate multiple requests to a service.
  2036  //
  2037  //    // Example iterating over at most 3 pages of a GetBotVersions operation.
  2038  //    pageNum := 0
  2039  //    err := client.GetBotVersionsPages(params,
  2040  //        func(page *lexmodelbuildingservice.GetBotVersionsOutput, lastPage bool) bool {
  2041  //            pageNum++
  2042  //            fmt.Println(page)
  2043  //            return pageNum <= 3
  2044  //        })
  2045  //
  2046  func (c *LexModelBuildingService) GetBotVersionsPages(input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool) error {
  2047  	return c.GetBotVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  2048  }
  2049  
  2050  // GetBotVersionsPagesWithContext same as GetBotVersionsPages except
  2051  // it takes a Context and allows setting request options on the pages.
  2052  //
  2053  // The context must be non-nil and will be used for request cancellation. If
  2054  // the context is nil a panic will occur. In the future the SDK may create
  2055  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2056  // for more information on using Contexts.
  2057  func (c *LexModelBuildingService) GetBotVersionsPagesWithContext(ctx aws.Context, input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool, opts ...request.Option) error {
  2058  	p := request.Pagination{
  2059  		NewRequest: func() (*request.Request, error) {
  2060  			var inCpy *GetBotVersionsInput
  2061  			if input != nil {
  2062  				tmp := *input
  2063  				inCpy = &tmp
  2064  			}
  2065  			req, _ := c.GetBotVersionsRequest(inCpy)
  2066  			req.SetContext(ctx)
  2067  			req.ApplyOptions(opts...)
  2068  			return req, nil
  2069  		},
  2070  	}
  2071  
  2072  	for p.Next() {
  2073  		if !fn(p.Page().(*GetBotVersionsOutput), !p.HasNextPage()) {
  2074  			break
  2075  		}
  2076  	}
  2077  
  2078  	return p.Err()
  2079  }
  2080  
  2081  const opGetBots = "GetBots"
  2082  
  2083  // GetBotsRequest generates a "aws/request.Request" representing the
  2084  // client's request for the GetBots operation. The "output" return
  2085  // value will be populated with the request's response once the request completes
  2086  // successfully.
  2087  //
  2088  // Use "Send" method on the returned Request to send the API call to the service.
  2089  // the "output" return value is not valid until after Send returns without error.
  2090  //
  2091  // See GetBots for more information on using the GetBots
  2092  // API call, and error handling.
  2093  //
  2094  // This method is useful when you want to inject custom logic or configuration
  2095  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2096  //
  2097  //
  2098  //    // Example sending a request using the GetBotsRequest method.
  2099  //    req, resp := client.GetBotsRequest(params)
  2100  //
  2101  //    err := req.Send()
  2102  //    if err == nil { // resp is now filled
  2103  //        fmt.Println(resp)
  2104  //    }
  2105  //
  2106  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
  2107  func (c *LexModelBuildingService) GetBotsRequest(input *GetBotsInput) (req *request.Request, output *GetBotsOutput) {
  2108  	op := &request.Operation{
  2109  		Name:       opGetBots,
  2110  		HTTPMethod: "GET",
  2111  		HTTPPath:   "/bots/",
  2112  		Paginator: &request.Paginator{
  2113  			InputTokens:     []string{"nextToken"},
  2114  			OutputTokens:    []string{"nextToken"},
  2115  			LimitToken:      "maxResults",
  2116  			TruncationToken: "",
  2117  		},
  2118  	}
  2119  
  2120  	if input == nil {
  2121  		input = &GetBotsInput{}
  2122  	}
  2123  
  2124  	output = &GetBotsOutput{}
  2125  	req = c.newRequest(op, input, output)
  2126  	return
  2127  }
  2128  
  2129  // GetBots API operation for Amazon Lex Model Building Service.
  2130  //
  2131  // Returns bot information as follows:
  2132  //
  2133  //    * If you provide the nameContains field, the response includes information
  2134  //    for the $LATEST version of all bots whose name contains the specified
  2135  //    string.
  2136  //
  2137  //    * If you don't specify the nameContains field, the operation returns information
  2138  //    about the $LATEST version of all of your bots.
  2139  //
  2140  // This operation requires permission for the lex:GetBots action.
  2141  //
  2142  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2143  // with awserr.Error's Code and Message methods to get detailed information about
  2144  // the error.
  2145  //
  2146  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2147  // API operation GetBots for usage and error information.
  2148  //
  2149  // Returned Error Types:
  2150  //   * NotFoundException
  2151  //   The resource specified in the request was not found. Check the resource and
  2152  //   try again.
  2153  //
  2154  //   * LimitExceededException
  2155  //   The request exceeded a limit. Try your request again.
  2156  //
  2157  //   * InternalFailureException
  2158  //   An internal Amazon Lex error occurred. Try your request again.
  2159  //
  2160  //   * BadRequestException
  2161  //   The request is not well formed. For example, a value is invalid or a required
  2162  //   field is missing. Check the field values, and try again.
  2163  //
  2164  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
  2165  func (c *LexModelBuildingService) GetBots(input *GetBotsInput) (*GetBotsOutput, error) {
  2166  	req, out := c.GetBotsRequest(input)
  2167  	return out, req.Send()
  2168  }
  2169  
  2170  // GetBotsWithContext is the same as GetBots with the addition of
  2171  // the ability to pass a context and additional request options.
  2172  //
  2173  // See GetBots for details on how to use this API operation.
  2174  //
  2175  // The context must be non-nil and will be used for request cancellation. If
  2176  // the context is nil a panic will occur. In the future the SDK may create
  2177  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2178  // for more information on using Contexts.
  2179  func (c *LexModelBuildingService) GetBotsWithContext(ctx aws.Context, input *GetBotsInput, opts ...request.Option) (*GetBotsOutput, error) {
  2180  	req, out := c.GetBotsRequest(input)
  2181  	req.SetContext(ctx)
  2182  	req.ApplyOptions(opts...)
  2183  	return out, req.Send()
  2184  }
  2185  
  2186  // GetBotsPages iterates over the pages of a GetBots operation,
  2187  // calling the "fn" function with the response data for each page. To stop
  2188  // iterating, return false from the fn function.
  2189  //
  2190  // See GetBots method for more information on how to use this operation.
  2191  //
  2192  // Note: This operation can generate multiple requests to a service.
  2193  //
  2194  //    // Example iterating over at most 3 pages of a GetBots operation.
  2195  //    pageNum := 0
  2196  //    err := client.GetBotsPages(params,
  2197  //        func(page *lexmodelbuildingservice.GetBotsOutput, lastPage bool) bool {
  2198  //            pageNum++
  2199  //            fmt.Println(page)
  2200  //            return pageNum <= 3
  2201  //        })
  2202  //
  2203  func (c *LexModelBuildingService) GetBotsPages(input *GetBotsInput, fn func(*GetBotsOutput, bool) bool) error {
  2204  	return c.GetBotsPagesWithContext(aws.BackgroundContext(), input, fn)
  2205  }
  2206  
  2207  // GetBotsPagesWithContext same as GetBotsPages except
  2208  // it takes a Context and allows setting request options on the pages.
  2209  //
  2210  // The context must be non-nil and will be used for request cancellation. If
  2211  // the context is nil a panic will occur. In the future the SDK may create
  2212  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2213  // for more information on using Contexts.
  2214  func (c *LexModelBuildingService) GetBotsPagesWithContext(ctx aws.Context, input *GetBotsInput, fn func(*GetBotsOutput, bool) bool, opts ...request.Option) error {
  2215  	p := request.Pagination{
  2216  		NewRequest: func() (*request.Request, error) {
  2217  			var inCpy *GetBotsInput
  2218  			if input != nil {
  2219  				tmp := *input
  2220  				inCpy = &tmp
  2221  			}
  2222  			req, _ := c.GetBotsRequest(inCpy)
  2223  			req.SetContext(ctx)
  2224  			req.ApplyOptions(opts...)
  2225  			return req, nil
  2226  		},
  2227  	}
  2228  
  2229  	for p.Next() {
  2230  		if !fn(p.Page().(*GetBotsOutput), !p.HasNextPage()) {
  2231  			break
  2232  		}
  2233  	}
  2234  
  2235  	return p.Err()
  2236  }
  2237  
  2238  const opGetBuiltinIntent = "GetBuiltinIntent"
  2239  
  2240  // GetBuiltinIntentRequest generates a "aws/request.Request" representing the
  2241  // client's request for the GetBuiltinIntent operation. The "output" return
  2242  // value will be populated with the request's response once the request completes
  2243  // successfully.
  2244  //
  2245  // Use "Send" method on the returned Request to send the API call to the service.
  2246  // the "output" return value is not valid until after Send returns without error.
  2247  //
  2248  // See GetBuiltinIntent for more information on using the GetBuiltinIntent
  2249  // API call, and error handling.
  2250  //
  2251  // This method is useful when you want to inject custom logic or configuration
  2252  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2253  //
  2254  //
  2255  //    // Example sending a request using the GetBuiltinIntentRequest method.
  2256  //    req, resp := client.GetBuiltinIntentRequest(params)
  2257  //
  2258  //    err := req.Send()
  2259  //    if err == nil { // resp is now filled
  2260  //        fmt.Println(resp)
  2261  //    }
  2262  //
  2263  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
  2264  func (c *LexModelBuildingService) GetBuiltinIntentRequest(input *GetBuiltinIntentInput) (req *request.Request, output *GetBuiltinIntentOutput) {
  2265  	op := &request.Operation{
  2266  		Name:       opGetBuiltinIntent,
  2267  		HTTPMethod: "GET",
  2268  		HTTPPath:   "/builtins/intents/{signature}",
  2269  	}
  2270  
  2271  	if input == nil {
  2272  		input = &GetBuiltinIntentInput{}
  2273  	}
  2274  
  2275  	output = &GetBuiltinIntentOutput{}
  2276  	req = c.newRequest(op, input, output)
  2277  	return
  2278  }
  2279  
  2280  // GetBuiltinIntent API operation for Amazon Lex Model Building Service.
  2281  //
  2282  // Returns information about a built-in intent.
  2283  //
  2284  // This operation requires permission for the lex:GetBuiltinIntent action.
  2285  //
  2286  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2287  // with awserr.Error's Code and Message methods to get detailed information about
  2288  // the error.
  2289  //
  2290  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2291  // API operation GetBuiltinIntent for usage and error information.
  2292  //
  2293  // Returned Error Types:
  2294  //   * NotFoundException
  2295  //   The resource specified in the request was not found. Check the resource and
  2296  //   try again.
  2297  //
  2298  //   * LimitExceededException
  2299  //   The request exceeded a limit. Try your request again.
  2300  //
  2301  //   * InternalFailureException
  2302  //   An internal Amazon Lex error occurred. Try your request again.
  2303  //
  2304  //   * BadRequestException
  2305  //   The request is not well formed. For example, a value is invalid or a required
  2306  //   field is missing. Check the field values, and try again.
  2307  //
  2308  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
  2309  func (c *LexModelBuildingService) GetBuiltinIntent(input *GetBuiltinIntentInput) (*GetBuiltinIntentOutput, error) {
  2310  	req, out := c.GetBuiltinIntentRequest(input)
  2311  	return out, req.Send()
  2312  }
  2313  
  2314  // GetBuiltinIntentWithContext is the same as GetBuiltinIntent with the addition of
  2315  // the ability to pass a context and additional request options.
  2316  //
  2317  // See GetBuiltinIntent for details on how to use this API operation.
  2318  //
  2319  // The context must be non-nil and will be used for request cancellation. If
  2320  // the context is nil a panic will occur. In the future the SDK may create
  2321  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2322  // for more information on using Contexts.
  2323  func (c *LexModelBuildingService) GetBuiltinIntentWithContext(ctx aws.Context, input *GetBuiltinIntentInput, opts ...request.Option) (*GetBuiltinIntentOutput, error) {
  2324  	req, out := c.GetBuiltinIntentRequest(input)
  2325  	req.SetContext(ctx)
  2326  	req.ApplyOptions(opts...)
  2327  	return out, req.Send()
  2328  }
  2329  
  2330  const opGetBuiltinIntents = "GetBuiltinIntents"
  2331  
  2332  // GetBuiltinIntentsRequest generates a "aws/request.Request" representing the
  2333  // client's request for the GetBuiltinIntents operation. The "output" return
  2334  // value will be populated with the request's response once the request completes
  2335  // successfully.
  2336  //
  2337  // Use "Send" method on the returned Request to send the API call to the service.
  2338  // the "output" return value is not valid until after Send returns without error.
  2339  //
  2340  // See GetBuiltinIntents for more information on using the GetBuiltinIntents
  2341  // API call, and error handling.
  2342  //
  2343  // This method is useful when you want to inject custom logic or configuration
  2344  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2345  //
  2346  //
  2347  //    // Example sending a request using the GetBuiltinIntentsRequest method.
  2348  //    req, resp := client.GetBuiltinIntentsRequest(params)
  2349  //
  2350  //    err := req.Send()
  2351  //    if err == nil { // resp is now filled
  2352  //        fmt.Println(resp)
  2353  //    }
  2354  //
  2355  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
  2356  func (c *LexModelBuildingService) GetBuiltinIntentsRequest(input *GetBuiltinIntentsInput) (req *request.Request, output *GetBuiltinIntentsOutput) {
  2357  	op := &request.Operation{
  2358  		Name:       opGetBuiltinIntents,
  2359  		HTTPMethod: "GET",
  2360  		HTTPPath:   "/builtins/intents/",
  2361  		Paginator: &request.Paginator{
  2362  			InputTokens:     []string{"nextToken"},
  2363  			OutputTokens:    []string{"nextToken"},
  2364  			LimitToken:      "maxResults",
  2365  			TruncationToken: "",
  2366  		},
  2367  	}
  2368  
  2369  	if input == nil {
  2370  		input = &GetBuiltinIntentsInput{}
  2371  	}
  2372  
  2373  	output = &GetBuiltinIntentsOutput{}
  2374  	req = c.newRequest(op, input, output)
  2375  	return
  2376  }
  2377  
  2378  // GetBuiltinIntents API operation for Amazon Lex Model Building Service.
  2379  //
  2380  // Gets a list of built-in intents that meet the specified criteria.
  2381  //
  2382  // This operation requires permission for the lex:GetBuiltinIntents action.
  2383  //
  2384  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2385  // with awserr.Error's Code and Message methods to get detailed information about
  2386  // the error.
  2387  //
  2388  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2389  // API operation GetBuiltinIntents for usage and error information.
  2390  //
  2391  // Returned Error Types:
  2392  //   * LimitExceededException
  2393  //   The request exceeded a limit. Try your request again.
  2394  //
  2395  //   * InternalFailureException
  2396  //   An internal Amazon Lex error occurred. Try your request again.
  2397  //
  2398  //   * BadRequestException
  2399  //   The request is not well formed. For example, a value is invalid or a required
  2400  //   field is missing. Check the field values, and try again.
  2401  //
  2402  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
  2403  func (c *LexModelBuildingService) GetBuiltinIntents(input *GetBuiltinIntentsInput) (*GetBuiltinIntentsOutput, error) {
  2404  	req, out := c.GetBuiltinIntentsRequest(input)
  2405  	return out, req.Send()
  2406  }
  2407  
  2408  // GetBuiltinIntentsWithContext is the same as GetBuiltinIntents with the addition of
  2409  // the ability to pass a context and additional request options.
  2410  //
  2411  // See GetBuiltinIntents for details on how to use this API operation.
  2412  //
  2413  // The context must be non-nil and will be used for request cancellation. If
  2414  // the context is nil a panic will occur. In the future the SDK may create
  2415  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2416  // for more information on using Contexts.
  2417  func (c *LexModelBuildingService) GetBuiltinIntentsWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, opts ...request.Option) (*GetBuiltinIntentsOutput, error) {
  2418  	req, out := c.GetBuiltinIntentsRequest(input)
  2419  	req.SetContext(ctx)
  2420  	req.ApplyOptions(opts...)
  2421  	return out, req.Send()
  2422  }
  2423  
  2424  // GetBuiltinIntentsPages iterates over the pages of a GetBuiltinIntents operation,
  2425  // calling the "fn" function with the response data for each page. To stop
  2426  // iterating, return false from the fn function.
  2427  //
  2428  // See GetBuiltinIntents method for more information on how to use this operation.
  2429  //
  2430  // Note: This operation can generate multiple requests to a service.
  2431  //
  2432  //    // Example iterating over at most 3 pages of a GetBuiltinIntents operation.
  2433  //    pageNum := 0
  2434  //    err := client.GetBuiltinIntentsPages(params,
  2435  //        func(page *lexmodelbuildingservice.GetBuiltinIntentsOutput, lastPage bool) bool {
  2436  //            pageNum++
  2437  //            fmt.Println(page)
  2438  //            return pageNum <= 3
  2439  //        })
  2440  //
  2441  func (c *LexModelBuildingService) GetBuiltinIntentsPages(input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool) error {
  2442  	return c.GetBuiltinIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
  2443  }
  2444  
  2445  // GetBuiltinIntentsPagesWithContext same as GetBuiltinIntentsPages except
  2446  // it takes a Context and allows setting request options on the pages.
  2447  //
  2448  // The context must be non-nil and will be used for request cancellation. If
  2449  // the context is nil a panic will occur. In the future the SDK may create
  2450  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2451  // for more information on using Contexts.
  2452  func (c *LexModelBuildingService) GetBuiltinIntentsPagesWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool, opts ...request.Option) error {
  2453  	p := request.Pagination{
  2454  		NewRequest: func() (*request.Request, error) {
  2455  			var inCpy *GetBuiltinIntentsInput
  2456  			if input != nil {
  2457  				tmp := *input
  2458  				inCpy = &tmp
  2459  			}
  2460  			req, _ := c.GetBuiltinIntentsRequest(inCpy)
  2461  			req.SetContext(ctx)
  2462  			req.ApplyOptions(opts...)
  2463  			return req, nil
  2464  		},
  2465  	}
  2466  
  2467  	for p.Next() {
  2468  		if !fn(p.Page().(*GetBuiltinIntentsOutput), !p.HasNextPage()) {
  2469  			break
  2470  		}
  2471  	}
  2472  
  2473  	return p.Err()
  2474  }
  2475  
  2476  const opGetBuiltinSlotTypes = "GetBuiltinSlotTypes"
  2477  
  2478  // GetBuiltinSlotTypesRequest generates a "aws/request.Request" representing the
  2479  // client's request for the GetBuiltinSlotTypes operation. The "output" return
  2480  // value will be populated with the request's response once the request completes
  2481  // successfully.
  2482  //
  2483  // Use "Send" method on the returned Request to send the API call to the service.
  2484  // the "output" return value is not valid until after Send returns without error.
  2485  //
  2486  // See GetBuiltinSlotTypes for more information on using the GetBuiltinSlotTypes
  2487  // API call, and error handling.
  2488  //
  2489  // This method is useful when you want to inject custom logic or configuration
  2490  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2491  //
  2492  //
  2493  //    // Example sending a request using the GetBuiltinSlotTypesRequest method.
  2494  //    req, resp := client.GetBuiltinSlotTypesRequest(params)
  2495  //
  2496  //    err := req.Send()
  2497  //    if err == nil { // resp is now filled
  2498  //        fmt.Println(resp)
  2499  //    }
  2500  //
  2501  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
  2502  func (c *LexModelBuildingService) GetBuiltinSlotTypesRequest(input *GetBuiltinSlotTypesInput) (req *request.Request, output *GetBuiltinSlotTypesOutput) {
  2503  	op := &request.Operation{
  2504  		Name:       opGetBuiltinSlotTypes,
  2505  		HTTPMethod: "GET",
  2506  		HTTPPath:   "/builtins/slottypes/",
  2507  		Paginator: &request.Paginator{
  2508  			InputTokens:     []string{"nextToken"},
  2509  			OutputTokens:    []string{"nextToken"},
  2510  			LimitToken:      "maxResults",
  2511  			TruncationToken: "",
  2512  		},
  2513  	}
  2514  
  2515  	if input == nil {
  2516  		input = &GetBuiltinSlotTypesInput{}
  2517  	}
  2518  
  2519  	output = &GetBuiltinSlotTypesOutput{}
  2520  	req = c.newRequest(op, input, output)
  2521  	return
  2522  }
  2523  
  2524  // GetBuiltinSlotTypes API operation for Amazon Lex Model Building Service.
  2525  //
  2526  // Gets a list of built-in slot types that meet the specified criteria.
  2527  //
  2528  // For a list of built-in slot types, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
  2529  // in the Alexa Skills Kit.
  2530  //
  2531  // This operation requires permission for the lex:GetBuiltInSlotTypes action.
  2532  //
  2533  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2534  // with awserr.Error's Code and Message methods to get detailed information about
  2535  // the error.
  2536  //
  2537  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2538  // API operation GetBuiltinSlotTypes for usage and error information.
  2539  //
  2540  // Returned Error Types:
  2541  //   * LimitExceededException
  2542  //   The request exceeded a limit. Try your request again.
  2543  //
  2544  //   * InternalFailureException
  2545  //   An internal Amazon Lex error occurred. Try your request again.
  2546  //
  2547  //   * BadRequestException
  2548  //   The request is not well formed. For example, a value is invalid or a required
  2549  //   field is missing. Check the field values, and try again.
  2550  //
  2551  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
  2552  func (c *LexModelBuildingService) GetBuiltinSlotTypes(input *GetBuiltinSlotTypesInput) (*GetBuiltinSlotTypesOutput, error) {
  2553  	req, out := c.GetBuiltinSlotTypesRequest(input)
  2554  	return out, req.Send()
  2555  }
  2556  
  2557  // GetBuiltinSlotTypesWithContext is the same as GetBuiltinSlotTypes with the addition of
  2558  // the ability to pass a context and additional request options.
  2559  //
  2560  // See GetBuiltinSlotTypes for details on how to use this API operation.
  2561  //
  2562  // The context must be non-nil and will be used for request cancellation. If
  2563  // the context is nil a panic will occur. In the future the SDK may create
  2564  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2565  // for more information on using Contexts.
  2566  func (c *LexModelBuildingService) GetBuiltinSlotTypesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, opts ...request.Option) (*GetBuiltinSlotTypesOutput, error) {
  2567  	req, out := c.GetBuiltinSlotTypesRequest(input)
  2568  	req.SetContext(ctx)
  2569  	req.ApplyOptions(opts...)
  2570  	return out, req.Send()
  2571  }
  2572  
  2573  // GetBuiltinSlotTypesPages iterates over the pages of a GetBuiltinSlotTypes operation,
  2574  // calling the "fn" function with the response data for each page. To stop
  2575  // iterating, return false from the fn function.
  2576  //
  2577  // See GetBuiltinSlotTypes method for more information on how to use this operation.
  2578  //
  2579  // Note: This operation can generate multiple requests to a service.
  2580  //
  2581  //    // Example iterating over at most 3 pages of a GetBuiltinSlotTypes operation.
  2582  //    pageNum := 0
  2583  //    err := client.GetBuiltinSlotTypesPages(params,
  2584  //        func(page *lexmodelbuildingservice.GetBuiltinSlotTypesOutput, lastPage bool) bool {
  2585  //            pageNum++
  2586  //            fmt.Println(page)
  2587  //            return pageNum <= 3
  2588  //        })
  2589  //
  2590  func (c *LexModelBuildingService) GetBuiltinSlotTypesPages(input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool) error {
  2591  	return c.GetBuiltinSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
  2592  }
  2593  
  2594  // GetBuiltinSlotTypesPagesWithContext same as GetBuiltinSlotTypesPages except
  2595  // it takes a Context and allows setting request options on the pages.
  2596  //
  2597  // The context must be non-nil and will be used for request cancellation. If
  2598  // the context is nil a panic will occur. In the future the SDK may create
  2599  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2600  // for more information on using Contexts.
  2601  func (c *LexModelBuildingService) GetBuiltinSlotTypesPagesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool, opts ...request.Option) error {
  2602  	p := request.Pagination{
  2603  		NewRequest: func() (*request.Request, error) {
  2604  			var inCpy *GetBuiltinSlotTypesInput
  2605  			if input != nil {
  2606  				tmp := *input
  2607  				inCpy = &tmp
  2608  			}
  2609  			req, _ := c.GetBuiltinSlotTypesRequest(inCpy)
  2610  			req.SetContext(ctx)
  2611  			req.ApplyOptions(opts...)
  2612  			return req, nil
  2613  		},
  2614  	}
  2615  
  2616  	for p.Next() {
  2617  		if !fn(p.Page().(*GetBuiltinSlotTypesOutput), !p.HasNextPage()) {
  2618  			break
  2619  		}
  2620  	}
  2621  
  2622  	return p.Err()
  2623  }
  2624  
  2625  const opGetExport = "GetExport"
  2626  
  2627  // GetExportRequest generates a "aws/request.Request" representing the
  2628  // client's request for the GetExport operation. The "output" return
  2629  // value will be populated with the request's response once the request completes
  2630  // successfully.
  2631  //
  2632  // Use "Send" method on the returned Request to send the API call to the service.
  2633  // the "output" return value is not valid until after Send returns without error.
  2634  //
  2635  // See GetExport for more information on using the GetExport
  2636  // API call, and error handling.
  2637  //
  2638  // This method is useful when you want to inject custom logic or configuration
  2639  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2640  //
  2641  //
  2642  //    // Example sending a request using the GetExportRequest method.
  2643  //    req, resp := client.GetExportRequest(params)
  2644  //
  2645  //    err := req.Send()
  2646  //    if err == nil { // resp is now filled
  2647  //        fmt.Println(resp)
  2648  //    }
  2649  //
  2650  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
  2651  func (c *LexModelBuildingService) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
  2652  	op := &request.Operation{
  2653  		Name:       opGetExport,
  2654  		HTTPMethod: "GET",
  2655  		HTTPPath:   "/exports/",
  2656  	}
  2657  
  2658  	if input == nil {
  2659  		input = &GetExportInput{}
  2660  	}
  2661  
  2662  	output = &GetExportOutput{}
  2663  	req = c.newRequest(op, input, output)
  2664  	return
  2665  }
  2666  
  2667  // GetExport API operation for Amazon Lex Model Building Service.
  2668  //
  2669  // Exports the contents of a Amazon Lex resource in a specified format.
  2670  //
  2671  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2672  // with awserr.Error's Code and Message methods to get detailed information about
  2673  // the error.
  2674  //
  2675  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2676  // API operation GetExport for usage and error information.
  2677  //
  2678  // Returned Error Types:
  2679  //   * NotFoundException
  2680  //   The resource specified in the request was not found. Check the resource and
  2681  //   try again.
  2682  //
  2683  //   * LimitExceededException
  2684  //   The request exceeded a limit. Try your request again.
  2685  //
  2686  //   * InternalFailureException
  2687  //   An internal Amazon Lex error occurred. Try your request again.
  2688  //
  2689  //   * BadRequestException
  2690  //   The request is not well formed. For example, a value is invalid or a required
  2691  //   field is missing. Check the field values, and try again.
  2692  //
  2693  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
  2694  func (c *LexModelBuildingService) GetExport(input *GetExportInput) (*GetExportOutput, error) {
  2695  	req, out := c.GetExportRequest(input)
  2696  	return out, req.Send()
  2697  }
  2698  
  2699  // GetExportWithContext is the same as GetExport with the addition of
  2700  // the ability to pass a context and additional request options.
  2701  //
  2702  // See GetExport for details on how to use this API operation.
  2703  //
  2704  // The context must be non-nil and will be used for request cancellation. If
  2705  // the context is nil a panic will occur. In the future the SDK may create
  2706  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2707  // for more information on using Contexts.
  2708  func (c *LexModelBuildingService) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
  2709  	req, out := c.GetExportRequest(input)
  2710  	req.SetContext(ctx)
  2711  	req.ApplyOptions(opts...)
  2712  	return out, req.Send()
  2713  }
  2714  
  2715  const opGetImport = "GetImport"
  2716  
  2717  // GetImportRequest generates a "aws/request.Request" representing the
  2718  // client's request for the GetImport operation. The "output" return
  2719  // value will be populated with the request's response once the request completes
  2720  // successfully.
  2721  //
  2722  // Use "Send" method on the returned Request to send the API call to the service.
  2723  // the "output" return value is not valid until after Send returns without error.
  2724  //
  2725  // See GetImport for more information on using the GetImport
  2726  // API call, and error handling.
  2727  //
  2728  // This method is useful when you want to inject custom logic or configuration
  2729  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2730  //
  2731  //
  2732  //    // Example sending a request using the GetImportRequest method.
  2733  //    req, resp := client.GetImportRequest(params)
  2734  //
  2735  //    err := req.Send()
  2736  //    if err == nil { // resp is now filled
  2737  //        fmt.Println(resp)
  2738  //    }
  2739  //
  2740  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
  2741  func (c *LexModelBuildingService) GetImportRequest(input *GetImportInput) (req *request.Request, output *GetImportOutput) {
  2742  	op := &request.Operation{
  2743  		Name:       opGetImport,
  2744  		HTTPMethod: "GET",
  2745  		HTTPPath:   "/imports/{importId}",
  2746  	}
  2747  
  2748  	if input == nil {
  2749  		input = &GetImportInput{}
  2750  	}
  2751  
  2752  	output = &GetImportOutput{}
  2753  	req = c.newRequest(op, input, output)
  2754  	return
  2755  }
  2756  
  2757  // GetImport API operation for Amazon Lex Model Building Service.
  2758  //
  2759  // Gets information about an import job started with the StartImport operation.
  2760  //
  2761  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2762  // with awserr.Error's Code and Message methods to get detailed information about
  2763  // the error.
  2764  //
  2765  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2766  // API operation GetImport for usage and error information.
  2767  //
  2768  // Returned Error Types:
  2769  //   * NotFoundException
  2770  //   The resource specified in the request was not found. Check the resource and
  2771  //   try again.
  2772  //
  2773  //   * LimitExceededException
  2774  //   The request exceeded a limit. Try your request again.
  2775  //
  2776  //   * InternalFailureException
  2777  //   An internal Amazon Lex error occurred. Try your request again.
  2778  //
  2779  //   * BadRequestException
  2780  //   The request is not well formed. For example, a value is invalid or a required
  2781  //   field is missing. Check the field values, and try again.
  2782  //
  2783  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
  2784  func (c *LexModelBuildingService) GetImport(input *GetImportInput) (*GetImportOutput, error) {
  2785  	req, out := c.GetImportRequest(input)
  2786  	return out, req.Send()
  2787  }
  2788  
  2789  // GetImportWithContext is the same as GetImport with the addition of
  2790  // the ability to pass a context and additional request options.
  2791  //
  2792  // See GetImport for details on how to use this API operation.
  2793  //
  2794  // The context must be non-nil and will be used for request cancellation. If
  2795  // the context is nil a panic will occur. In the future the SDK may create
  2796  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2797  // for more information on using Contexts.
  2798  func (c *LexModelBuildingService) GetImportWithContext(ctx aws.Context, input *GetImportInput, opts ...request.Option) (*GetImportOutput, error) {
  2799  	req, out := c.GetImportRequest(input)
  2800  	req.SetContext(ctx)
  2801  	req.ApplyOptions(opts...)
  2802  	return out, req.Send()
  2803  }
  2804  
  2805  const opGetIntent = "GetIntent"
  2806  
  2807  // GetIntentRequest generates a "aws/request.Request" representing the
  2808  // client's request for the GetIntent operation. The "output" return
  2809  // value will be populated with the request's response once the request completes
  2810  // successfully.
  2811  //
  2812  // Use "Send" method on the returned Request to send the API call to the service.
  2813  // the "output" return value is not valid until after Send returns without error.
  2814  //
  2815  // See GetIntent for more information on using the GetIntent
  2816  // API call, and error handling.
  2817  //
  2818  // This method is useful when you want to inject custom logic or configuration
  2819  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2820  //
  2821  //
  2822  //    // Example sending a request using the GetIntentRequest method.
  2823  //    req, resp := client.GetIntentRequest(params)
  2824  //
  2825  //    err := req.Send()
  2826  //    if err == nil { // resp is now filled
  2827  //        fmt.Println(resp)
  2828  //    }
  2829  //
  2830  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
  2831  func (c *LexModelBuildingService) GetIntentRequest(input *GetIntentInput) (req *request.Request, output *GetIntentOutput) {
  2832  	op := &request.Operation{
  2833  		Name:       opGetIntent,
  2834  		HTTPMethod: "GET",
  2835  		HTTPPath:   "/intents/{name}/versions/{version}",
  2836  	}
  2837  
  2838  	if input == nil {
  2839  		input = &GetIntentInput{}
  2840  	}
  2841  
  2842  	output = &GetIntentOutput{}
  2843  	req = c.newRequest(op, input, output)
  2844  	return
  2845  }
  2846  
  2847  // GetIntent API operation for Amazon Lex Model Building Service.
  2848  //
  2849  // Returns information about an intent. In addition to the intent name, you
  2850  // must specify the intent version.
  2851  //
  2852  // This operation requires permissions to perform the lex:GetIntent action.
  2853  //
  2854  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2855  // with awserr.Error's Code and Message methods to get detailed information about
  2856  // the error.
  2857  //
  2858  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2859  // API operation GetIntent for usage and error information.
  2860  //
  2861  // Returned Error Types:
  2862  //   * NotFoundException
  2863  //   The resource specified in the request was not found. Check the resource and
  2864  //   try again.
  2865  //
  2866  //   * LimitExceededException
  2867  //   The request exceeded a limit. Try your request again.
  2868  //
  2869  //   * InternalFailureException
  2870  //   An internal Amazon Lex error occurred. Try your request again.
  2871  //
  2872  //   * BadRequestException
  2873  //   The request is not well formed. For example, a value is invalid or a required
  2874  //   field is missing. Check the field values, and try again.
  2875  //
  2876  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
  2877  func (c *LexModelBuildingService) GetIntent(input *GetIntentInput) (*GetIntentOutput, error) {
  2878  	req, out := c.GetIntentRequest(input)
  2879  	return out, req.Send()
  2880  }
  2881  
  2882  // GetIntentWithContext is the same as GetIntent with the addition of
  2883  // the ability to pass a context and additional request options.
  2884  //
  2885  // See GetIntent for details on how to use this API operation.
  2886  //
  2887  // The context must be non-nil and will be used for request cancellation. If
  2888  // the context is nil a panic will occur. In the future the SDK may create
  2889  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2890  // for more information on using Contexts.
  2891  func (c *LexModelBuildingService) GetIntentWithContext(ctx aws.Context, input *GetIntentInput, opts ...request.Option) (*GetIntentOutput, error) {
  2892  	req, out := c.GetIntentRequest(input)
  2893  	req.SetContext(ctx)
  2894  	req.ApplyOptions(opts...)
  2895  	return out, req.Send()
  2896  }
  2897  
  2898  const opGetIntentVersions = "GetIntentVersions"
  2899  
  2900  // GetIntentVersionsRequest generates a "aws/request.Request" representing the
  2901  // client's request for the GetIntentVersions operation. The "output" return
  2902  // value will be populated with the request's response once the request completes
  2903  // successfully.
  2904  //
  2905  // Use "Send" method on the returned Request to send the API call to the service.
  2906  // the "output" return value is not valid until after Send returns without error.
  2907  //
  2908  // See GetIntentVersions for more information on using the GetIntentVersions
  2909  // API call, and error handling.
  2910  //
  2911  // This method is useful when you want to inject custom logic or configuration
  2912  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2913  //
  2914  //
  2915  //    // Example sending a request using the GetIntentVersionsRequest method.
  2916  //    req, resp := client.GetIntentVersionsRequest(params)
  2917  //
  2918  //    err := req.Send()
  2919  //    if err == nil { // resp is now filled
  2920  //        fmt.Println(resp)
  2921  //    }
  2922  //
  2923  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
  2924  func (c *LexModelBuildingService) GetIntentVersionsRequest(input *GetIntentVersionsInput) (req *request.Request, output *GetIntentVersionsOutput) {
  2925  	op := &request.Operation{
  2926  		Name:       opGetIntentVersions,
  2927  		HTTPMethod: "GET",
  2928  		HTTPPath:   "/intents/{name}/versions/",
  2929  		Paginator: &request.Paginator{
  2930  			InputTokens:     []string{"nextToken"},
  2931  			OutputTokens:    []string{"nextToken"},
  2932  			LimitToken:      "maxResults",
  2933  			TruncationToken: "",
  2934  		},
  2935  	}
  2936  
  2937  	if input == nil {
  2938  		input = &GetIntentVersionsInput{}
  2939  	}
  2940  
  2941  	output = &GetIntentVersionsOutput{}
  2942  	req = c.newRequest(op, input, output)
  2943  	return
  2944  }
  2945  
  2946  // GetIntentVersions API operation for Amazon Lex Model Building Service.
  2947  //
  2948  // Gets information about all of the versions of an intent.
  2949  //
  2950  // The GetIntentVersions operation returns an IntentMetadata object for each
  2951  // version of an intent. For example, if an intent has three numbered versions,
  2952  // the GetIntentVersions operation returns four IntentMetadata objects in the
  2953  // response, one for each numbered version and one for the $LATEST version.
  2954  //
  2955  // The GetIntentVersions operation always returns at least one version, the
  2956  // $LATEST version.
  2957  //
  2958  // This operation requires permissions for the lex:GetIntentVersions action.
  2959  //
  2960  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2961  // with awserr.Error's Code and Message methods to get detailed information about
  2962  // the error.
  2963  //
  2964  // See the AWS API reference guide for Amazon Lex Model Building Service's
  2965  // API operation GetIntentVersions for usage and error information.
  2966  //
  2967  // Returned Error Types:
  2968  //   * NotFoundException
  2969  //   The resource specified in the request was not found. Check the resource and
  2970  //   try again.
  2971  //
  2972  //   * LimitExceededException
  2973  //   The request exceeded a limit. Try your request again.
  2974  //
  2975  //   * InternalFailureException
  2976  //   An internal Amazon Lex error occurred. Try your request again.
  2977  //
  2978  //   * BadRequestException
  2979  //   The request is not well formed. For example, a value is invalid or a required
  2980  //   field is missing. Check the field values, and try again.
  2981  //
  2982  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
  2983  func (c *LexModelBuildingService) GetIntentVersions(input *GetIntentVersionsInput) (*GetIntentVersionsOutput, error) {
  2984  	req, out := c.GetIntentVersionsRequest(input)
  2985  	return out, req.Send()
  2986  }
  2987  
  2988  // GetIntentVersionsWithContext is the same as GetIntentVersions with the addition of
  2989  // the ability to pass a context and additional request options.
  2990  //
  2991  // See GetIntentVersions for details on how to use this API operation.
  2992  //
  2993  // The context must be non-nil and will be used for request cancellation. If
  2994  // the context is nil a panic will occur. In the future the SDK may create
  2995  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2996  // for more information on using Contexts.
  2997  func (c *LexModelBuildingService) GetIntentVersionsWithContext(ctx aws.Context, input *GetIntentVersionsInput, opts ...request.Option) (*GetIntentVersionsOutput, error) {
  2998  	req, out := c.GetIntentVersionsRequest(input)
  2999  	req.SetContext(ctx)
  3000  	req.ApplyOptions(opts...)
  3001  	return out, req.Send()
  3002  }
  3003  
  3004  // GetIntentVersionsPages iterates over the pages of a GetIntentVersions operation,
  3005  // calling the "fn" function with the response data for each page. To stop
  3006  // iterating, return false from the fn function.
  3007  //
  3008  // See GetIntentVersions method for more information on how to use this operation.
  3009  //
  3010  // Note: This operation can generate multiple requests to a service.
  3011  //
  3012  //    // Example iterating over at most 3 pages of a GetIntentVersions operation.
  3013  //    pageNum := 0
  3014  //    err := client.GetIntentVersionsPages(params,
  3015  //        func(page *lexmodelbuildingservice.GetIntentVersionsOutput, lastPage bool) bool {
  3016  //            pageNum++
  3017  //            fmt.Println(page)
  3018  //            return pageNum <= 3
  3019  //        })
  3020  //
  3021  func (c *LexModelBuildingService) GetIntentVersionsPages(input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool) error {
  3022  	return c.GetIntentVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  3023  }
  3024  
  3025  // GetIntentVersionsPagesWithContext same as GetIntentVersionsPages except
  3026  // it takes a Context and allows setting request options on the pages.
  3027  //
  3028  // The context must be non-nil and will be used for request cancellation. If
  3029  // the context is nil a panic will occur. In the future the SDK may create
  3030  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3031  // for more information on using Contexts.
  3032  func (c *LexModelBuildingService) GetIntentVersionsPagesWithContext(ctx aws.Context, input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool, opts ...request.Option) error {
  3033  	p := request.Pagination{
  3034  		NewRequest: func() (*request.Request, error) {
  3035  			var inCpy *GetIntentVersionsInput
  3036  			if input != nil {
  3037  				tmp := *input
  3038  				inCpy = &tmp
  3039  			}
  3040  			req, _ := c.GetIntentVersionsRequest(inCpy)
  3041  			req.SetContext(ctx)
  3042  			req.ApplyOptions(opts...)
  3043  			return req, nil
  3044  		},
  3045  	}
  3046  
  3047  	for p.Next() {
  3048  		if !fn(p.Page().(*GetIntentVersionsOutput), !p.HasNextPage()) {
  3049  			break
  3050  		}
  3051  	}
  3052  
  3053  	return p.Err()
  3054  }
  3055  
  3056  const opGetIntents = "GetIntents"
  3057  
  3058  // GetIntentsRequest generates a "aws/request.Request" representing the
  3059  // client's request for the GetIntents operation. The "output" return
  3060  // value will be populated with the request's response once the request completes
  3061  // successfully.
  3062  //
  3063  // Use "Send" method on the returned Request to send the API call to the service.
  3064  // the "output" return value is not valid until after Send returns without error.
  3065  //
  3066  // See GetIntents for more information on using the GetIntents
  3067  // API call, and error handling.
  3068  //
  3069  // This method is useful when you want to inject custom logic or configuration
  3070  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3071  //
  3072  //
  3073  //    // Example sending a request using the GetIntentsRequest method.
  3074  //    req, resp := client.GetIntentsRequest(params)
  3075  //
  3076  //    err := req.Send()
  3077  //    if err == nil { // resp is now filled
  3078  //        fmt.Println(resp)
  3079  //    }
  3080  //
  3081  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
  3082  func (c *LexModelBuildingService) GetIntentsRequest(input *GetIntentsInput) (req *request.Request, output *GetIntentsOutput) {
  3083  	op := &request.Operation{
  3084  		Name:       opGetIntents,
  3085  		HTTPMethod: "GET",
  3086  		HTTPPath:   "/intents/",
  3087  		Paginator: &request.Paginator{
  3088  			InputTokens:     []string{"nextToken"},
  3089  			OutputTokens:    []string{"nextToken"},
  3090  			LimitToken:      "maxResults",
  3091  			TruncationToken: "",
  3092  		},
  3093  	}
  3094  
  3095  	if input == nil {
  3096  		input = &GetIntentsInput{}
  3097  	}
  3098  
  3099  	output = &GetIntentsOutput{}
  3100  	req = c.newRequest(op, input, output)
  3101  	return
  3102  }
  3103  
  3104  // GetIntents API operation for Amazon Lex Model Building Service.
  3105  //
  3106  // Returns intent information as follows:
  3107  //
  3108  //    * If you specify the nameContains field, returns the $LATEST version of
  3109  //    all intents that contain the specified string.
  3110  //
  3111  //    * If you don't specify the nameContains field, returns information about
  3112  //    the $LATEST version of all intents.
  3113  //
  3114  // The operation requires permission for the lex:GetIntents action.
  3115  //
  3116  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3117  // with awserr.Error's Code and Message methods to get detailed information about
  3118  // the error.
  3119  //
  3120  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3121  // API operation GetIntents for usage and error information.
  3122  //
  3123  // Returned Error Types:
  3124  //   * NotFoundException
  3125  //   The resource specified in the request was not found. Check the resource and
  3126  //   try again.
  3127  //
  3128  //   * LimitExceededException
  3129  //   The request exceeded a limit. Try your request again.
  3130  //
  3131  //   * InternalFailureException
  3132  //   An internal Amazon Lex error occurred. Try your request again.
  3133  //
  3134  //   * BadRequestException
  3135  //   The request is not well formed. For example, a value is invalid or a required
  3136  //   field is missing. Check the field values, and try again.
  3137  //
  3138  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
  3139  func (c *LexModelBuildingService) GetIntents(input *GetIntentsInput) (*GetIntentsOutput, error) {
  3140  	req, out := c.GetIntentsRequest(input)
  3141  	return out, req.Send()
  3142  }
  3143  
  3144  // GetIntentsWithContext is the same as GetIntents with the addition of
  3145  // the ability to pass a context and additional request options.
  3146  //
  3147  // See GetIntents for details on how to use this API operation.
  3148  //
  3149  // The context must be non-nil and will be used for request cancellation. If
  3150  // the context is nil a panic will occur. In the future the SDK may create
  3151  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3152  // for more information on using Contexts.
  3153  func (c *LexModelBuildingService) GetIntentsWithContext(ctx aws.Context, input *GetIntentsInput, opts ...request.Option) (*GetIntentsOutput, error) {
  3154  	req, out := c.GetIntentsRequest(input)
  3155  	req.SetContext(ctx)
  3156  	req.ApplyOptions(opts...)
  3157  	return out, req.Send()
  3158  }
  3159  
  3160  // GetIntentsPages iterates over the pages of a GetIntents operation,
  3161  // calling the "fn" function with the response data for each page. To stop
  3162  // iterating, return false from the fn function.
  3163  //
  3164  // See GetIntents method for more information on how to use this operation.
  3165  //
  3166  // Note: This operation can generate multiple requests to a service.
  3167  //
  3168  //    // Example iterating over at most 3 pages of a GetIntents operation.
  3169  //    pageNum := 0
  3170  //    err := client.GetIntentsPages(params,
  3171  //        func(page *lexmodelbuildingservice.GetIntentsOutput, lastPage bool) bool {
  3172  //            pageNum++
  3173  //            fmt.Println(page)
  3174  //            return pageNum <= 3
  3175  //        })
  3176  //
  3177  func (c *LexModelBuildingService) GetIntentsPages(input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool) error {
  3178  	return c.GetIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
  3179  }
  3180  
  3181  // GetIntentsPagesWithContext same as GetIntentsPages except
  3182  // it takes a Context and allows setting request options on the pages.
  3183  //
  3184  // The context must be non-nil and will be used for request cancellation. If
  3185  // the context is nil a panic will occur. In the future the SDK may create
  3186  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3187  // for more information on using Contexts.
  3188  func (c *LexModelBuildingService) GetIntentsPagesWithContext(ctx aws.Context, input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool, opts ...request.Option) error {
  3189  	p := request.Pagination{
  3190  		NewRequest: func() (*request.Request, error) {
  3191  			var inCpy *GetIntentsInput
  3192  			if input != nil {
  3193  				tmp := *input
  3194  				inCpy = &tmp
  3195  			}
  3196  			req, _ := c.GetIntentsRequest(inCpy)
  3197  			req.SetContext(ctx)
  3198  			req.ApplyOptions(opts...)
  3199  			return req, nil
  3200  		},
  3201  	}
  3202  
  3203  	for p.Next() {
  3204  		if !fn(p.Page().(*GetIntentsOutput), !p.HasNextPage()) {
  3205  			break
  3206  		}
  3207  	}
  3208  
  3209  	return p.Err()
  3210  }
  3211  
  3212  const opGetMigration = "GetMigration"
  3213  
  3214  // GetMigrationRequest generates a "aws/request.Request" representing the
  3215  // client's request for the GetMigration operation. The "output" return
  3216  // value will be populated with the request's response once the request completes
  3217  // successfully.
  3218  //
  3219  // Use "Send" method on the returned Request to send the API call to the service.
  3220  // the "output" return value is not valid until after Send returns without error.
  3221  //
  3222  // See GetMigration for more information on using the GetMigration
  3223  // API call, and error handling.
  3224  //
  3225  // This method is useful when you want to inject custom logic or configuration
  3226  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3227  //
  3228  //
  3229  //    // Example sending a request using the GetMigrationRequest method.
  3230  //    req, resp := client.GetMigrationRequest(params)
  3231  //
  3232  //    err := req.Send()
  3233  //    if err == nil { // resp is now filled
  3234  //        fmt.Println(resp)
  3235  //    }
  3236  //
  3237  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigration
  3238  func (c *LexModelBuildingService) GetMigrationRequest(input *GetMigrationInput) (req *request.Request, output *GetMigrationOutput) {
  3239  	op := &request.Operation{
  3240  		Name:       opGetMigration,
  3241  		HTTPMethod: "GET",
  3242  		HTTPPath:   "/migrations/{migrationId}",
  3243  	}
  3244  
  3245  	if input == nil {
  3246  		input = &GetMigrationInput{}
  3247  	}
  3248  
  3249  	output = &GetMigrationOutput{}
  3250  	req = c.newRequest(op, input, output)
  3251  	return
  3252  }
  3253  
  3254  // GetMigration API operation for Amazon Lex Model Building Service.
  3255  //
  3256  // Provides details about an ongoing or complete migration from an Amazon Lex
  3257  // V1 bot to an Amazon Lex V2 bot. Use this operation to view the migration
  3258  // alerts and warnings related to the migration.
  3259  //
  3260  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3261  // with awserr.Error's Code and Message methods to get detailed information about
  3262  // the error.
  3263  //
  3264  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3265  // API operation GetMigration for usage and error information.
  3266  //
  3267  // Returned Error Types:
  3268  //   * LimitExceededException
  3269  //   The request exceeded a limit. Try your request again.
  3270  //
  3271  //   * InternalFailureException
  3272  //   An internal Amazon Lex error occurred. Try your request again.
  3273  //
  3274  //   * BadRequestException
  3275  //   The request is not well formed. For example, a value is invalid or a required
  3276  //   field is missing. Check the field values, and try again.
  3277  //
  3278  //   * NotFoundException
  3279  //   The resource specified in the request was not found. Check the resource and
  3280  //   try again.
  3281  //
  3282  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigration
  3283  func (c *LexModelBuildingService) GetMigration(input *GetMigrationInput) (*GetMigrationOutput, error) {
  3284  	req, out := c.GetMigrationRequest(input)
  3285  	return out, req.Send()
  3286  }
  3287  
  3288  // GetMigrationWithContext is the same as GetMigration with the addition of
  3289  // the ability to pass a context and additional request options.
  3290  //
  3291  // See GetMigration for details on how to use this API operation.
  3292  //
  3293  // The context must be non-nil and will be used for request cancellation. If
  3294  // the context is nil a panic will occur. In the future the SDK may create
  3295  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3296  // for more information on using Contexts.
  3297  func (c *LexModelBuildingService) GetMigrationWithContext(ctx aws.Context, input *GetMigrationInput, opts ...request.Option) (*GetMigrationOutput, error) {
  3298  	req, out := c.GetMigrationRequest(input)
  3299  	req.SetContext(ctx)
  3300  	req.ApplyOptions(opts...)
  3301  	return out, req.Send()
  3302  }
  3303  
  3304  const opGetMigrations = "GetMigrations"
  3305  
  3306  // GetMigrationsRequest generates a "aws/request.Request" representing the
  3307  // client's request for the GetMigrations operation. The "output" return
  3308  // value will be populated with the request's response once the request completes
  3309  // successfully.
  3310  //
  3311  // Use "Send" method on the returned Request to send the API call to the service.
  3312  // the "output" return value is not valid until after Send returns without error.
  3313  //
  3314  // See GetMigrations for more information on using the GetMigrations
  3315  // API call, and error handling.
  3316  //
  3317  // This method is useful when you want to inject custom logic or configuration
  3318  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3319  //
  3320  //
  3321  //    // Example sending a request using the GetMigrationsRequest method.
  3322  //    req, resp := client.GetMigrationsRequest(params)
  3323  //
  3324  //    err := req.Send()
  3325  //    if err == nil { // resp is now filled
  3326  //        fmt.Println(resp)
  3327  //    }
  3328  //
  3329  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigrations
  3330  func (c *LexModelBuildingService) GetMigrationsRequest(input *GetMigrationsInput) (req *request.Request, output *GetMigrationsOutput) {
  3331  	op := &request.Operation{
  3332  		Name:       opGetMigrations,
  3333  		HTTPMethod: "GET",
  3334  		HTTPPath:   "/migrations",
  3335  		Paginator: &request.Paginator{
  3336  			InputTokens:     []string{"nextToken"},
  3337  			OutputTokens:    []string{"nextToken"},
  3338  			LimitToken:      "maxResults",
  3339  			TruncationToken: "",
  3340  		},
  3341  	}
  3342  
  3343  	if input == nil {
  3344  		input = &GetMigrationsInput{}
  3345  	}
  3346  
  3347  	output = &GetMigrationsOutput{}
  3348  	req = c.newRequest(op, input, output)
  3349  	return
  3350  }
  3351  
  3352  // GetMigrations API operation for Amazon Lex Model Building Service.
  3353  //
  3354  // Gets a list of migrations between Amazon Lex V1 and Amazon Lex V2.
  3355  //
  3356  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3357  // with awserr.Error's Code and Message methods to get detailed information about
  3358  // the error.
  3359  //
  3360  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3361  // API operation GetMigrations for usage and error information.
  3362  //
  3363  // Returned Error Types:
  3364  //   * LimitExceededException
  3365  //   The request exceeded a limit. Try your request again.
  3366  //
  3367  //   * InternalFailureException
  3368  //   An internal Amazon Lex error occurred. Try your request again.
  3369  //
  3370  //   * BadRequestException
  3371  //   The request is not well formed. For example, a value is invalid or a required
  3372  //   field is missing. Check the field values, and try again.
  3373  //
  3374  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigrations
  3375  func (c *LexModelBuildingService) GetMigrations(input *GetMigrationsInput) (*GetMigrationsOutput, error) {
  3376  	req, out := c.GetMigrationsRequest(input)
  3377  	return out, req.Send()
  3378  }
  3379  
  3380  // GetMigrationsWithContext is the same as GetMigrations with the addition of
  3381  // the ability to pass a context and additional request options.
  3382  //
  3383  // See GetMigrations for details on how to use this API operation.
  3384  //
  3385  // The context must be non-nil and will be used for request cancellation. If
  3386  // the context is nil a panic will occur. In the future the SDK may create
  3387  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3388  // for more information on using Contexts.
  3389  func (c *LexModelBuildingService) GetMigrationsWithContext(ctx aws.Context, input *GetMigrationsInput, opts ...request.Option) (*GetMigrationsOutput, error) {
  3390  	req, out := c.GetMigrationsRequest(input)
  3391  	req.SetContext(ctx)
  3392  	req.ApplyOptions(opts...)
  3393  	return out, req.Send()
  3394  }
  3395  
  3396  // GetMigrationsPages iterates over the pages of a GetMigrations operation,
  3397  // calling the "fn" function with the response data for each page. To stop
  3398  // iterating, return false from the fn function.
  3399  //
  3400  // See GetMigrations method for more information on how to use this operation.
  3401  //
  3402  // Note: This operation can generate multiple requests to a service.
  3403  //
  3404  //    // Example iterating over at most 3 pages of a GetMigrations operation.
  3405  //    pageNum := 0
  3406  //    err := client.GetMigrationsPages(params,
  3407  //        func(page *lexmodelbuildingservice.GetMigrationsOutput, lastPage bool) bool {
  3408  //            pageNum++
  3409  //            fmt.Println(page)
  3410  //            return pageNum <= 3
  3411  //        })
  3412  //
  3413  func (c *LexModelBuildingService) GetMigrationsPages(input *GetMigrationsInput, fn func(*GetMigrationsOutput, bool) bool) error {
  3414  	return c.GetMigrationsPagesWithContext(aws.BackgroundContext(), input, fn)
  3415  }
  3416  
  3417  // GetMigrationsPagesWithContext same as GetMigrationsPages except
  3418  // it takes a Context and allows setting request options on the pages.
  3419  //
  3420  // The context must be non-nil and will be used for request cancellation. If
  3421  // the context is nil a panic will occur. In the future the SDK may create
  3422  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3423  // for more information on using Contexts.
  3424  func (c *LexModelBuildingService) GetMigrationsPagesWithContext(ctx aws.Context, input *GetMigrationsInput, fn func(*GetMigrationsOutput, bool) bool, opts ...request.Option) error {
  3425  	p := request.Pagination{
  3426  		NewRequest: func() (*request.Request, error) {
  3427  			var inCpy *GetMigrationsInput
  3428  			if input != nil {
  3429  				tmp := *input
  3430  				inCpy = &tmp
  3431  			}
  3432  			req, _ := c.GetMigrationsRequest(inCpy)
  3433  			req.SetContext(ctx)
  3434  			req.ApplyOptions(opts...)
  3435  			return req, nil
  3436  		},
  3437  	}
  3438  
  3439  	for p.Next() {
  3440  		if !fn(p.Page().(*GetMigrationsOutput), !p.HasNextPage()) {
  3441  			break
  3442  		}
  3443  	}
  3444  
  3445  	return p.Err()
  3446  }
  3447  
  3448  const opGetSlotType = "GetSlotType"
  3449  
  3450  // GetSlotTypeRequest generates a "aws/request.Request" representing the
  3451  // client's request for the GetSlotType operation. The "output" return
  3452  // value will be populated with the request's response once the request completes
  3453  // successfully.
  3454  //
  3455  // Use "Send" method on the returned Request to send the API call to the service.
  3456  // the "output" return value is not valid until after Send returns without error.
  3457  //
  3458  // See GetSlotType for more information on using the GetSlotType
  3459  // API call, and error handling.
  3460  //
  3461  // This method is useful when you want to inject custom logic or configuration
  3462  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3463  //
  3464  //
  3465  //    // Example sending a request using the GetSlotTypeRequest method.
  3466  //    req, resp := client.GetSlotTypeRequest(params)
  3467  //
  3468  //    err := req.Send()
  3469  //    if err == nil { // resp is now filled
  3470  //        fmt.Println(resp)
  3471  //    }
  3472  //
  3473  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
  3474  func (c *LexModelBuildingService) GetSlotTypeRequest(input *GetSlotTypeInput) (req *request.Request, output *GetSlotTypeOutput) {
  3475  	op := &request.Operation{
  3476  		Name:       opGetSlotType,
  3477  		HTTPMethod: "GET",
  3478  		HTTPPath:   "/slottypes/{name}/versions/{version}",
  3479  	}
  3480  
  3481  	if input == nil {
  3482  		input = &GetSlotTypeInput{}
  3483  	}
  3484  
  3485  	output = &GetSlotTypeOutput{}
  3486  	req = c.newRequest(op, input, output)
  3487  	return
  3488  }
  3489  
  3490  // GetSlotType API operation for Amazon Lex Model Building Service.
  3491  //
  3492  // Returns information about a specific version of a slot type. In addition
  3493  // to specifying the slot type name, you must specify the slot type version.
  3494  //
  3495  // This operation requires permissions for the lex:GetSlotType action.
  3496  //
  3497  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3498  // with awserr.Error's Code and Message methods to get detailed information about
  3499  // the error.
  3500  //
  3501  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3502  // API operation GetSlotType for usage and error information.
  3503  //
  3504  // Returned Error Types:
  3505  //   * NotFoundException
  3506  //   The resource specified in the request was not found. Check the resource and
  3507  //   try again.
  3508  //
  3509  //   * LimitExceededException
  3510  //   The request exceeded a limit. Try your request again.
  3511  //
  3512  //   * InternalFailureException
  3513  //   An internal Amazon Lex error occurred. Try your request again.
  3514  //
  3515  //   * BadRequestException
  3516  //   The request is not well formed. For example, a value is invalid or a required
  3517  //   field is missing. Check the field values, and try again.
  3518  //
  3519  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
  3520  func (c *LexModelBuildingService) GetSlotType(input *GetSlotTypeInput) (*GetSlotTypeOutput, error) {
  3521  	req, out := c.GetSlotTypeRequest(input)
  3522  	return out, req.Send()
  3523  }
  3524  
  3525  // GetSlotTypeWithContext is the same as GetSlotType with the addition of
  3526  // the ability to pass a context and additional request options.
  3527  //
  3528  // See GetSlotType for details on how to use this API operation.
  3529  //
  3530  // The context must be non-nil and will be used for request cancellation. If
  3531  // the context is nil a panic will occur. In the future the SDK may create
  3532  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3533  // for more information on using Contexts.
  3534  func (c *LexModelBuildingService) GetSlotTypeWithContext(ctx aws.Context, input *GetSlotTypeInput, opts ...request.Option) (*GetSlotTypeOutput, error) {
  3535  	req, out := c.GetSlotTypeRequest(input)
  3536  	req.SetContext(ctx)
  3537  	req.ApplyOptions(opts...)
  3538  	return out, req.Send()
  3539  }
  3540  
  3541  const opGetSlotTypeVersions = "GetSlotTypeVersions"
  3542  
  3543  // GetSlotTypeVersionsRequest generates a "aws/request.Request" representing the
  3544  // client's request for the GetSlotTypeVersions operation. The "output" return
  3545  // value will be populated with the request's response once the request completes
  3546  // successfully.
  3547  //
  3548  // Use "Send" method on the returned Request to send the API call to the service.
  3549  // the "output" return value is not valid until after Send returns without error.
  3550  //
  3551  // See GetSlotTypeVersions for more information on using the GetSlotTypeVersions
  3552  // API call, and error handling.
  3553  //
  3554  // This method is useful when you want to inject custom logic or configuration
  3555  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3556  //
  3557  //
  3558  //    // Example sending a request using the GetSlotTypeVersionsRequest method.
  3559  //    req, resp := client.GetSlotTypeVersionsRequest(params)
  3560  //
  3561  //    err := req.Send()
  3562  //    if err == nil { // resp is now filled
  3563  //        fmt.Println(resp)
  3564  //    }
  3565  //
  3566  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
  3567  func (c *LexModelBuildingService) GetSlotTypeVersionsRequest(input *GetSlotTypeVersionsInput) (req *request.Request, output *GetSlotTypeVersionsOutput) {
  3568  	op := &request.Operation{
  3569  		Name:       opGetSlotTypeVersions,
  3570  		HTTPMethod: "GET",
  3571  		HTTPPath:   "/slottypes/{name}/versions/",
  3572  		Paginator: &request.Paginator{
  3573  			InputTokens:     []string{"nextToken"},
  3574  			OutputTokens:    []string{"nextToken"},
  3575  			LimitToken:      "maxResults",
  3576  			TruncationToken: "",
  3577  		},
  3578  	}
  3579  
  3580  	if input == nil {
  3581  		input = &GetSlotTypeVersionsInput{}
  3582  	}
  3583  
  3584  	output = &GetSlotTypeVersionsOutput{}
  3585  	req = c.newRequest(op, input, output)
  3586  	return
  3587  }
  3588  
  3589  // GetSlotTypeVersions API operation for Amazon Lex Model Building Service.
  3590  //
  3591  // Gets information about all versions of a slot type.
  3592  //
  3593  // The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each
  3594  // version of a slot type. For example, if a slot type has three numbered versions,
  3595  // the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in
  3596  // the response, one for each numbered version and one for the $LATEST version.
  3597  //
  3598  // The GetSlotTypeVersions operation always returns at least one version, the
  3599  // $LATEST version.
  3600  //
  3601  // This operation requires permissions for the lex:GetSlotTypeVersions action.
  3602  //
  3603  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3604  // with awserr.Error's Code and Message methods to get detailed information about
  3605  // the error.
  3606  //
  3607  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3608  // API operation GetSlotTypeVersions for usage and error information.
  3609  //
  3610  // Returned Error Types:
  3611  //   * NotFoundException
  3612  //   The resource specified in the request was not found. Check the resource and
  3613  //   try again.
  3614  //
  3615  //   * LimitExceededException
  3616  //   The request exceeded a limit. Try your request again.
  3617  //
  3618  //   * InternalFailureException
  3619  //   An internal Amazon Lex error occurred. Try your request again.
  3620  //
  3621  //   * BadRequestException
  3622  //   The request is not well formed. For example, a value is invalid or a required
  3623  //   field is missing. Check the field values, and try again.
  3624  //
  3625  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
  3626  func (c *LexModelBuildingService) GetSlotTypeVersions(input *GetSlotTypeVersionsInput) (*GetSlotTypeVersionsOutput, error) {
  3627  	req, out := c.GetSlotTypeVersionsRequest(input)
  3628  	return out, req.Send()
  3629  }
  3630  
  3631  // GetSlotTypeVersionsWithContext is the same as GetSlotTypeVersions with the addition of
  3632  // the ability to pass a context and additional request options.
  3633  //
  3634  // See GetSlotTypeVersions for details on how to use this API operation.
  3635  //
  3636  // The context must be non-nil and will be used for request cancellation. If
  3637  // the context is nil a panic will occur. In the future the SDK may create
  3638  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3639  // for more information on using Contexts.
  3640  func (c *LexModelBuildingService) GetSlotTypeVersionsWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, opts ...request.Option) (*GetSlotTypeVersionsOutput, error) {
  3641  	req, out := c.GetSlotTypeVersionsRequest(input)
  3642  	req.SetContext(ctx)
  3643  	req.ApplyOptions(opts...)
  3644  	return out, req.Send()
  3645  }
  3646  
  3647  // GetSlotTypeVersionsPages iterates over the pages of a GetSlotTypeVersions operation,
  3648  // calling the "fn" function with the response data for each page. To stop
  3649  // iterating, return false from the fn function.
  3650  //
  3651  // See GetSlotTypeVersions method for more information on how to use this operation.
  3652  //
  3653  // Note: This operation can generate multiple requests to a service.
  3654  //
  3655  //    // Example iterating over at most 3 pages of a GetSlotTypeVersions operation.
  3656  //    pageNum := 0
  3657  //    err := client.GetSlotTypeVersionsPages(params,
  3658  //        func(page *lexmodelbuildingservice.GetSlotTypeVersionsOutput, lastPage bool) bool {
  3659  //            pageNum++
  3660  //            fmt.Println(page)
  3661  //            return pageNum <= 3
  3662  //        })
  3663  //
  3664  func (c *LexModelBuildingService) GetSlotTypeVersionsPages(input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool) error {
  3665  	return c.GetSlotTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  3666  }
  3667  
  3668  // GetSlotTypeVersionsPagesWithContext same as GetSlotTypeVersionsPages except
  3669  // it takes a Context and allows setting request options on the pages.
  3670  //
  3671  // The context must be non-nil and will be used for request cancellation. If
  3672  // the context is nil a panic will occur. In the future the SDK may create
  3673  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3674  // for more information on using Contexts.
  3675  func (c *LexModelBuildingService) GetSlotTypeVersionsPagesWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool, opts ...request.Option) error {
  3676  	p := request.Pagination{
  3677  		NewRequest: func() (*request.Request, error) {
  3678  			var inCpy *GetSlotTypeVersionsInput
  3679  			if input != nil {
  3680  				tmp := *input
  3681  				inCpy = &tmp
  3682  			}
  3683  			req, _ := c.GetSlotTypeVersionsRequest(inCpy)
  3684  			req.SetContext(ctx)
  3685  			req.ApplyOptions(opts...)
  3686  			return req, nil
  3687  		},
  3688  	}
  3689  
  3690  	for p.Next() {
  3691  		if !fn(p.Page().(*GetSlotTypeVersionsOutput), !p.HasNextPage()) {
  3692  			break
  3693  		}
  3694  	}
  3695  
  3696  	return p.Err()
  3697  }
  3698  
  3699  const opGetSlotTypes = "GetSlotTypes"
  3700  
  3701  // GetSlotTypesRequest generates a "aws/request.Request" representing the
  3702  // client's request for the GetSlotTypes operation. The "output" return
  3703  // value will be populated with the request's response once the request completes
  3704  // successfully.
  3705  //
  3706  // Use "Send" method on the returned Request to send the API call to the service.
  3707  // the "output" return value is not valid until after Send returns without error.
  3708  //
  3709  // See GetSlotTypes for more information on using the GetSlotTypes
  3710  // API call, and error handling.
  3711  //
  3712  // This method is useful when you want to inject custom logic or configuration
  3713  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3714  //
  3715  //
  3716  //    // Example sending a request using the GetSlotTypesRequest method.
  3717  //    req, resp := client.GetSlotTypesRequest(params)
  3718  //
  3719  //    err := req.Send()
  3720  //    if err == nil { // resp is now filled
  3721  //        fmt.Println(resp)
  3722  //    }
  3723  //
  3724  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
  3725  func (c *LexModelBuildingService) GetSlotTypesRequest(input *GetSlotTypesInput) (req *request.Request, output *GetSlotTypesOutput) {
  3726  	op := &request.Operation{
  3727  		Name:       opGetSlotTypes,
  3728  		HTTPMethod: "GET",
  3729  		HTTPPath:   "/slottypes/",
  3730  		Paginator: &request.Paginator{
  3731  			InputTokens:     []string{"nextToken"},
  3732  			OutputTokens:    []string{"nextToken"},
  3733  			LimitToken:      "maxResults",
  3734  			TruncationToken: "",
  3735  		},
  3736  	}
  3737  
  3738  	if input == nil {
  3739  		input = &GetSlotTypesInput{}
  3740  	}
  3741  
  3742  	output = &GetSlotTypesOutput{}
  3743  	req = c.newRequest(op, input, output)
  3744  	return
  3745  }
  3746  
  3747  // GetSlotTypes API operation for Amazon Lex Model Building Service.
  3748  //
  3749  // Returns slot type information as follows:
  3750  //
  3751  //    * If you specify the nameContains field, returns the $LATEST version of
  3752  //    all slot types that contain the specified string.
  3753  //
  3754  //    * If you don't specify the nameContains field, returns information about
  3755  //    the $LATEST version of all slot types.
  3756  //
  3757  // The operation requires permission for the lex:GetSlotTypes action.
  3758  //
  3759  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3760  // with awserr.Error's Code and Message methods to get detailed information about
  3761  // the error.
  3762  //
  3763  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3764  // API operation GetSlotTypes for usage and error information.
  3765  //
  3766  // Returned Error Types:
  3767  //   * NotFoundException
  3768  //   The resource specified in the request was not found. Check the resource and
  3769  //   try again.
  3770  //
  3771  //   * LimitExceededException
  3772  //   The request exceeded a limit. Try your request again.
  3773  //
  3774  //   * InternalFailureException
  3775  //   An internal Amazon Lex error occurred. Try your request again.
  3776  //
  3777  //   * BadRequestException
  3778  //   The request is not well formed. For example, a value is invalid or a required
  3779  //   field is missing. Check the field values, and try again.
  3780  //
  3781  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
  3782  func (c *LexModelBuildingService) GetSlotTypes(input *GetSlotTypesInput) (*GetSlotTypesOutput, error) {
  3783  	req, out := c.GetSlotTypesRequest(input)
  3784  	return out, req.Send()
  3785  }
  3786  
  3787  // GetSlotTypesWithContext is the same as GetSlotTypes with the addition of
  3788  // the ability to pass a context and additional request options.
  3789  //
  3790  // See GetSlotTypes for details on how to use this API operation.
  3791  //
  3792  // The context must be non-nil and will be used for request cancellation. If
  3793  // the context is nil a panic will occur. In the future the SDK may create
  3794  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3795  // for more information on using Contexts.
  3796  func (c *LexModelBuildingService) GetSlotTypesWithContext(ctx aws.Context, input *GetSlotTypesInput, opts ...request.Option) (*GetSlotTypesOutput, error) {
  3797  	req, out := c.GetSlotTypesRequest(input)
  3798  	req.SetContext(ctx)
  3799  	req.ApplyOptions(opts...)
  3800  	return out, req.Send()
  3801  }
  3802  
  3803  // GetSlotTypesPages iterates over the pages of a GetSlotTypes operation,
  3804  // calling the "fn" function with the response data for each page. To stop
  3805  // iterating, return false from the fn function.
  3806  //
  3807  // See GetSlotTypes method for more information on how to use this operation.
  3808  //
  3809  // Note: This operation can generate multiple requests to a service.
  3810  //
  3811  //    // Example iterating over at most 3 pages of a GetSlotTypes operation.
  3812  //    pageNum := 0
  3813  //    err := client.GetSlotTypesPages(params,
  3814  //        func(page *lexmodelbuildingservice.GetSlotTypesOutput, lastPage bool) bool {
  3815  //            pageNum++
  3816  //            fmt.Println(page)
  3817  //            return pageNum <= 3
  3818  //        })
  3819  //
  3820  func (c *LexModelBuildingService) GetSlotTypesPages(input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool) error {
  3821  	return c.GetSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
  3822  }
  3823  
  3824  // GetSlotTypesPagesWithContext same as GetSlotTypesPages except
  3825  // it takes a Context and allows setting request options on the pages.
  3826  //
  3827  // The context must be non-nil and will be used for request cancellation. If
  3828  // the context is nil a panic will occur. In the future the SDK may create
  3829  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3830  // for more information on using Contexts.
  3831  func (c *LexModelBuildingService) GetSlotTypesPagesWithContext(ctx aws.Context, input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool, opts ...request.Option) error {
  3832  	p := request.Pagination{
  3833  		NewRequest: func() (*request.Request, error) {
  3834  			var inCpy *GetSlotTypesInput
  3835  			if input != nil {
  3836  				tmp := *input
  3837  				inCpy = &tmp
  3838  			}
  3839  			req, _ := c.GetSlotTypesRequest(inCpy)
  3840  			req.SetContext(ctx)
  3841  			req.ApplyOptions(opts...)
  3842  			return req, nil
  3843  		},
  3844  	}
  3845  
  3846  	for p.Next() {
  3847  		if !fn(p.Page().(*GetSlotTypesOutput), !p.HasNextPage()) {
  3848  			break
  3849  		}
  3850  	}
  3851  
  3852  	return p.Err()
  3853  }
  3854  
  3855  const opGetUtterancesView = "GetUtterancesView"
  3856  
  3857  // GetUtterancesViewRequest generates a "aws/request.Request" representing the
  3858  // client's request for the GetUtterancesView operation. The "output" return
  3859  // value will be populated with the request's response once the request completes
  3860  // successfully.
  3861  //
  3862  // Use "Send" method on the returned Request to send the API call to the service.
  3863  // the "output" return value is not valid until after Send returns without error.
  3864  //
  3865  // See GetUtterancesView for more information on using the GetUtterancesView
  3866  // API call, and error handling.
  3867  //
  3868  // This method is useful when you want to inject custom logic or configuration
  3869  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3870  //
  3871  //
  3872  //    // Example sending a request using the GetUtterancesViewRequest method.
  3873  //    req, resp := client.GetUtterancesViewRequest(params)
  3874  //
  3875  //    err := req.Send()
  3876  //    if err == nil { // resp is now filled
  3877  //        fmt.Println(resp)
  3878  //    }
  3879  //
  3880  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
  3881  func (c *LexModelBuildingService) GetUtterancesViewRequest(input *GetUtterancesViewInput) (req *request.Request, output *GetUtterancesViewOutput) {
  3882  	op := &request.Operation{
  3883  		Name:       opGetUtterancesView,
  3884  		HTTPMethod: "GET",
  3885  		HTTPPath:   "/bots/{botname}/utterances?view=aggregation",
  3886  	}
  3887  
  3888  	if input == nil {
  3889  		input = &GetUtterancesViewInput{}
  3890  	}
  3891  
  3892  	output = &GetUtterancesViewOutput{}
  3893  	req = c.newRequest(op, input, output)
  3894  	return
  3895  }
  3896  
  3897  // GetUtterancesView API operation for Amazon Lex Model Building Service.
  3898  //
  3899  // Use the GetUtterancesView operation to get information about the utterances
  3900  // that your users have made to your bot. You can use this list to tune the
  3901  // utterances that your bot responds to.
  3902  //
  3903  // For example, say that you have created a bot to order flowers. After your
  3904  // users have used your bot for a while, use the GetUtterancesView operation
  3905  // to see the requests that they have made and whether they have been successful.
  3906  // You might find that the utterance "I want flowers" is not being recognized.
  3907  // You could add this utterance to the OrderFlowers intent so that your bot
  3908  // recognizes that utterance.
  3909  //
  3910  // After you publish a new version of a bot, you can get information about the
  3911  // old version and the new so that you can compare the performance across the
  3912  // two versions.
  3913  //
  3914  // Utterance statistics are generated once a day. Data is available for the
  3915  // last 15 days. You can request information for up to 5 versions of your bot
  3916  // in each request. Amazon Lex returns the most frequent utterances received
  3917  // by the bot in the last 15 days. The response contains information about a
  3918  // maximum of 100 utterances for each version.
  3919  //
  3920  // If you set childDirected field to true when you created your bot, if you
  3921  // are using slot obfuscation with one or more slots, or if you opted out of
  3922  // participating in improving Amazon Lex, utterances are not available.
  3923  //
  3924  // This operation requires permissions for the lex:GetUtterancesView action.
  3925  //
  3926  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3927  // with awserr.Error's Code and Message methods to get detailed information about
  3928  // the error.
  3929  //
  3930  // See the AWS API reference guide for Amazon Lex Model Building Service's
  3931  // API operation GetUtterancesView for usage and error information.
  3932  //
  3933  // Returned Error Types:
  3934  //   * LimitExceededException
  3935  //   The request exceeded a limit. Try your request again.
  3936  //
  3937  //   * InternalFailureException
  3938  //   An internal Amazon Lex error occurred. Try your request again.
  3939  //
  3940  //   * BadRequestException
  3941  //   The request is not well formed. For example, a value is invalid or a required
  3942  //   field is missing. Check the field values, and try again.
  3943  //
  3944  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
  3945  func (c *LexModelBuildingService) GetUtterancesView(input *GetUtterancesViewInput) (*GetUtterancesViewOutput, error) {
  3946  	req, out := c.GetUtterancesViewRequest(input)
  3947  	return out, req.Send()
  3948  }
  3949  
  3950  // GetUtterancesViewWithContext is the same as GetUtterancesView with the addition of
  3951  // the ability to pass a context and additional request options.
  3952  //
  3953  // See GetUtterancesView for details on how to use this API operation.
  3954  //
  3955  // The context must be non-nil and will be used for request cancellation. If
  3956  // the context is nil a panic will occur. In the future the SDK may create
  3957  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3958  // for more information on using Contexts.
  3959  func (c *LexModelBuildingService) GetUtterancesViewWithContext(ctx aws.Context, input *GetUtterancesViewInput, opts ...request.Option) (*GetUtterancesViewOutput, error) {
  3960  	req, out := c.GetUtterancesViewRequest(input)
  3961  	req.SetContext(ctx)
  3962  	req.ApplyOptions(opts...)
  3963  	return out, req.Send()
  3964  }
  3965  
  3966  const opListTagsForResource = "ListTagsForResource"
  3967  
  3968  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  3969  // client's request for the ListTagsForResource operation. The "output" return
  3970  // value will be populated with the request's response once the request completes
  3971  // successfully.
  3972  //
  3973  // Use "Send" method on the returned Request to send the API call to the service.
  3974  // the "output" return value is not valid until after Send returns without error.
  3975  //
  3976  // See ListTagsForResource for more information on using the ListTagsForResource
  3977  // API call, and error handling.
  3978  //
  3979  // This method is useful when you want to inject custom logic or configuration
  3980  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3981  //
  3982  //
  3983  //    // Example sending a request using the ListTagsForResourceRequest method.
  3984  //    req, resp := client.ListTagsForResourceRequest(params)
  3985  //
  3986  //    err := req.Send()
  3987  //    if err == nil { // resp is now filled
  3988  //        fmt.Println(resp)
  3989  //    }
  3990  //
  3991  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
  3992  func (c *LexModelBuildingService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  3993  	op := &request.Operation{
  3994  		Name:       opListTagsForResource,
  3995  		HTTPMethod: "GET",
  3996  		HTTPPath:   "/tags/{resourceArn}",
  3997  	}
  3998  
  3999  	if input == nil {
  4000  		input = &ListTagsForResourceInput{}
  4001  	}
  4002  
  4003  	output = &ListTagsForResourceOutput{}
  4004  	req = c.newRequest(op, input, output)
  4005  	return
  4006  }
  4007  
  4008  // ListTagsForResource API operation for Amazon Lex Model Building Service.
  4009  //
  4010  // Gets a list of tags associated with the specified resource. Only bots, bot
  4011  // aliases, and bot channels can have tags associated with them.
  4012  //
  4013  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4014  // with awserr.Error's Code and Message methods to get detailed information about
  4015  // the error.
  4016  //
  4017  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4018  // API operation ListTagsForResource for usage and error information.
  4019  //
  4020  // Returned Error Types:
  4021  //   * NotFoundException
  4022  //   The resource specified in the request was not found. Check the resource and
  4023  //   try again.
  4024  //
  4025  //   * BadRequestException
  4026  //   The request is not well formed. For example, a value is invalid or a required
  4027  //   field is missing. Check the field values, and try again.
  4028  //
  4029  //   * InternalFailureException
  4030  //   An internal Amazon Lex error occurred. Try your request again.
  4031  //
  4032  //   * LimitExceededException
  4033  //   The request exceeded a limit. Try your request again.
  4034  //
  4035  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
  4036  func (c *LexModelBuildingService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  4037  	req, out := c.ListTagsForResourceRequest(input)
  4038  	return out, req.Send()
  4039  }
  4040  
  4041  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  4042  // the ability to pass a context and additional request options.
  4043  //
  4044  // See ListTagsForResource for details on how to use this API operation.
  4045  //
  4046  // The context must be non-nil and will be used for request cancellation. If
  4047  // the context is nil a panic will occur. In the future the SDK may create
  4048  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4049  // for more information on using Contexts.
  4050  func (c *LexModelBuildingService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  4051  	req, out := c.ListTagsForResourceRequest(input)
  4052  	req.SetContext(ctx)
  4053  	req.ApplyOptions(opts...)
  4054  	return out, req.Send()
  4055  }
  4056  
  4057  const opPutBot = "PutBot"
  4058  
  4059  // PutBotRequest generates a "aws/request.Request" representing the
  4060  // client's request for the PutBot operation. The "output" return
  4061  // value will be populated with the request's response once the request completes
  4062  // successfully.
  4063  //
  4064  // Use "Send" method on the returned Request to send the API call to the service.
  4065  // the "output" return value is not valid until after Send returns without error.
  4066  //
  4067  // See PutBot for more information on using the PutBot
  4068  // API call, and error handling.
  4069  //
  4070  // This method is useful when you want to inject custom logic or configuration
  4071  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4072  //
  4073  //
  4074  //    // Example sending a request using the PutBotRequest method.
  4075  //    req, resp := client.PutBotRequest(params)
  4076  //
  4077  //    err := req.Send()
  4078  //    if err == nil { // resp is now filled
  4079  //        fmt.Println(resp)
  4080  //    }
  4081  //
  4082  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
  4083  func (c *LexModelBuildingService) PutBotRequest(input *PutBotInput) (req *request.Request, output *PutBotOutput) {
  4084  	op := &request.Operation{
  4085  		Name:       opPutBot,
  4086  		HTTPMethod: "PUT",
  4087  		HTTPPath:   "/bots/{name}/versions/$LATEST",
  4088  	}
  4089  
  4090  	if input == nil {
  4091  		input = &PutBotInput{}
  4092  	}
  4093  
  4094  	output = &PutBotOutput{}
  4095  	req = c.newRequest(op, input, output)
  4096  	return
  4097  }
  4098  
  4099  // PutBot API operation for Amazon Lex Model Building Service.
  4100  //
  4101  // Creates an Amazon Lex conversational bot or replaces an existing bot. When
  4102  // you create or update a bot you are only required to specify a name, a locale,
  4103  // and whether the bot is directed toward children under age 13. You can use
  4104  // this to add intents later, or to remove intents from an existing bot. When
  4105  // you create a bot with the minimum information, the bot is created or updated
  4106  // but Amazon Lex returns the response FAILED. You can build the bot after you
  4107  // add one or more intents. For more information about Amazon Lex bots, see
  4108  // how-it-works.
  4109  //
  4110  // If you specify the name of an existing bot, the fields in the request replace
  4111  // the existing values in the $LATEST version of the bot. Amazon Lex removes
  4112  // any fields that you don't provide values for in the request, except for the
  4113  // idleTTLInSeconds and privacySettings fields, which are set to their default
  4114  // values. If you don't specify values for required fields, Amazon Lex throws
  4115  // an exception.
  4116  //
  4117  // This operation requires permissions for the lex:PutBot action. For more information,
  4118  // see security-iam.
  4119  //
  4120  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4121  // with awserr.Error's Code and Message methods to get detailed information about
  4122  // the error.
  4123  //
  4124  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4125  // API operation PutBot for usage and error information.
  4126  //
  4127  // Returned Error Types:
  4128  //   * ConflictException
  4129  //   There was a conflict processing the request. Try your request again.
  4130  //
  4131  //   * LimitExceededException
  4132  //   The request exceeded a limit. Try your request again.
  4133  //
  4134  //   * InternalFailureException
  4135  //   An internal Amazon Lex error occurred. Try your request again.
  4136  //
  4137  //   * BadRequestException
  4138  //   The request is not well formed. For example, a value is invalid or a required
  4139  //   field is missing. Check the field values, and try again.
  4140  //
  4141  //   * PreconditionFailedException
  4142  //   The checksum of the resource that you are trying to change does not match
  4143  //   the checksum in the request. Check the resource's checksum and try again.
  4144  //
  4145  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
  4146  func (c *LexModelBuildingService) PutBot(input *PutBotInput) (*PutBotOutput, error) {
  4147  	req, out := c.PutBotRequest(input)
  4148  	return out, req.Send()
  4149  }
  4150  
  4151  // PutBotWithContext is the same as PutBot with the addition of
  4152  // the ability to pass a context and additional request options.
  4153  //
  4154  // See PutBot for details on how to use this API operation.
  4155  //
  4156  // The context must be non-nil and will be used for request cancellation. If
  4157  // the context is nil a panic will occur. In the future the SDK may create
  4158  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4159  // for more information on using Contexts.
  4160  func (c *LexModelBuildingService) PutBotWithContext(ctx aws.Context, input *PutBotInput, opts ...request.Option) (*PutBotOutput, error) {
  4161  	req, out := c.PutBotRequest(input)
  4162  	req.SetContext(ctx)
  4163  	req.ApplyOptions(opts...)
  4164  	return out, req.Send()
  4165  }
  4166  
  4167  const opPutBotAlias = "PutBotAlias"
  4168  
  4169  // PutBotAliasRequest generates a "aws/request.Request" representing the
  4170  // client's request for the PutBotAlias operation. The "output" return
  4171  // value will be populated with the request's response once the request completes
  4172  // successfully.
  4173  //
  4174  // Use "Send" method on the returned Request to send the API call to the service.
  4175  // the "output" return value is not valid until after Send returns without error.
  4176  //
  4177  // See PutBotAlias for more information on using the PutBotAlias
  4178  // API call, and error handling.
  4179  //
  4180  // This method is useful when you want to inject custom logic or configuration
  4181  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4182  //
  4183  //
  4184  //    // Example sending a request using the PutBotAliasRequest method.
  4185  //    req, resp := client.PutBotAliasRequest(params)
  4186  //
  4187  //    err := req.Send()
  4188  //    if err == nil { // resp is now filled
  4189  //        fmt.Println(resp)
  4190  //    }
  4191  //
  4192  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
  4193  func (c *LexModelBuildingService) PutBotAliasRequest(input *PutBotAliasInput) (req *request.Request, output *PutBotAliasOutput) {
  4194  	op := &request.Operation{
  4195  		Name:       opPutBotAlias,
  4196  		HTTPMethod: "PUT",
  4197  		HTTPPath:   "/bots/{botName}/aliases/{name}",
  4198  	}
  4199  
  4200  	if input == nil {
  4201  		input = &PutBotAliasInput{}
  4202  	}
  4203  
  4204  	output = &PutBotAliasOutput{}
  4205  	req = c.newRequest(op, input, output)
  4206  	return
  4207  }
  4208  
  4209  // PutBotAlias API operation for Amazon Lex Model Building Service.
  4210  //
  4211  // Creates an alias for the specified version of the bot or replaces an alias
  4212  // for the specified bot. To change the version of the bot that the alias points
  4213  // to, replace the alias. For more information about aliases, see versioning-aliases.
  4214  //
  4215  // This operation requires permissions for the lex:PutBotAlias action.
  4216  //
  4217  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4218  // with awserr.Error's Code and Message methods to get detailed information about
  4219  // the error.
  4220  //
  4221  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4222  // API operation PutBotAlias for usage and error information.
  4223  //
  4224  // Returned Error Types:
  4225  //   * ConflictException
  4226  //   There was a conflict processing the request. Try your request again.
  4227  //
  4228  //   * LimitExceededException
  4229  //   The request exceeded a limit. Try your request again.
  4230  //
  4231  //   * InternalFailureException
  4232  //   An internal Amazon Lex error occurred. Try your request again.
  4233  //
  4234  //   * BadRequestException
  4235  //   The request is not well formed. For example, a value is invalid or a required
  4236  //   field is missing. Check the field values, and try again.
  4237  //
  4238  //   * PreconditionFailedException
  4239  //   The checksum of the resource that you are trying to change does not match
  4240  //   the checksum in the request. Check the resource's checksum and try again.
  4241  //
  4242  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
  4243  func (c *LexModelBuildingService) PutBotAlias(input *PutBotAliasInput) (*PutBotAliasOutput, error) {
  4244  	req, out := c.PutBotAliasRequest(input)
  4245  	return out, req.Send()
  4246  }
  4247  
  4248  // PutBotAliasWithContext is the same as PutBotAlias with the addition of
  4249  // the ability to pass a context and additional request options.
  4250  //
  4251  // See PutBotAlias for details on how to use this API operation.
  4252  //
  4253  // The context must be non-nil and will be used for request cancellation. If
  4254  // the context is nil a panic will occur. In the future the SDK may create
  4255  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4256  // for more information on using Contexts.
  4257  func (c *LexModelBuildingService) PutBotAliasWithContext(ctx aws.Context, input *PutBotAliasInput, opts ...request.Option) (*PutBotAliasOutput, error) {
  4258  	req, out := c.PutBotAliasRequest(input)
  4259  	req.SetContext(ctx)
  4260  	req.ApplyOptions(opts...)
  4261  	return out, req.Send()
  4262  }
  4263  
  4264  const opPutIntent = "PutIntent"
  4265  
  4266  // PutIntentRequest generates a "aws/request.Request" representing the
  4267  // client's request for the PutIntent operation. The "output" return
  4268  // value will be populated with the request's response once the request completes
  4269  // successfully.
  4270  //
  4271  // Use "Send" method on the returned Request to send the API call to the service.
  4272  // the "output" return value is not valid until after Send returns without error.
  4273  //
  4274  // See PutIntent for more information on using the PutIntent
  4275  // API call, and error handling.
  4276  //
  4277  // This method is useful when you want to inject custom logic or configuration
  4278  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4279  //
  4280  //
  4281  //    // Example sending a request using the PutIntentRequest method.
  4282  //    req, resp := client.PutIntentRequest(params)
  4283  //
  4284  //    err := req.Send()
  4285  //    if err == nil { // resp is now filled
  4286  //        fmt.Println(resp)
  4287  //    }
  4288  //
  4289  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
  4290  func (c *LexModelBuildingService) PutIntentRequest(input *PutIntentInput) (req *request.Request, output *PutIntentOutput) {
  4291  	op := &request.Operation{
  4292  		Name:       opPutIntent,
  4293  		HTTPMethod: "PUT",
  4294  		HTTPPath:   "/intents/{name}/versions/$LATEST",
  4295  	}
  4296  
  4297  	if input == nil {
  4298  		input = &PutIntentInput{}
  4299  	}
  4300  
  4301  	output = &PutIntentOutput{}
  4302  	req = c.newRequest(op, input, output)
  4303  	return
  4304  }
  4305  
  4306  // PutIntent API operation for Amazon Lex Model Building Service.
  4307  //
  4308  // Creates an intent or replaces an existing intent.
  4309  //
  4310  // To define the interaction between the user and your bot, you use one or more
  4311  // intents. For a pizza ordering bot, for example, you would create an OrderPizza
  4312  // intent.
  4313  //
  4314  // To create an intent or replace an existing intent, you must provide the following:
  4315  //
  4316  //    * Intent name. For example, OrderPizza.
  4317  //
  4318  //    * Sample utterances. For example, "Can I order a pizza, please." and "I
  4319  //    want to order a pizza."
  4320  //
  4321  //    * Information to be gathered. You specify slot types for the information
  4322  //    that your bot will request from the user. You can specify standard slot
  4323  //    types, such as a date or a time, or custom slot types such as the size
  4324  //    and crust of a pizza.
  4325  //
  4326  //    * How the intent will be fulfilled. You can provide a Lambda function
  4327  //    or configure the intent to return the intent information to the client
  4328  //    application. If you use a Lambda function, when all of the intent information
  4329  //    is available, Amazon Lex invokes your Lambda function. If you configure
  4330  //    your intent to return the intent information to the client application.
  4331  //
  4332  // You can specify other optional information in the request, such as:
  4333  //
  4334  //    * A confirmation prompt to ask the user to confirm an intent. For example,
  4335  //    "Shall I order your pizza?"
  4336  //
  4337  //    * A conclusion statement to send to the user after the intent has been
  4338  //    fulfilled. For example, "I placed your pizza order."
  4339  //
  4340  //    * A follow-up prompt that asks the user for additional activity. For example,
  4341  //    asking "Do you want to order a drink with your pizza?"
  4342  //
  4343  // If you specify an existing intent name to update the intent, Amazon Lex replaces
  4344  // the values in the $LATEST version of the intent with the values in the request.
  4345  // Amazon Lex removes fields that you don't provide in the request. If you don't
  4346  // specify the required fields, Amazon Lex throws an exception. When you update
  4347  // the $LATEST version of an intent, the status field of any bot that uses the
  4348  // $LATEST version of the intent is set to NOT_BUILT.
  4349  //
  4350  // For more information, see how-it-works.
  4351  //
  4352  // This operation requires permissions for the lex:PutIntent action.
  4353  //
  4354  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4355  // with awserr.Error's Code and Message methods to get detailed information about
  4356  // the error.
  4357  //
  4358  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4359  // API operation PutIntent for usage and error information.
  4360  //
  4361  // Returned Error Types:
  4362  //   * ConflictException
  4363  //   There was a conflict processing the request. Try your request again.
  4364  //
  4365  //   * LimitExceededException
  4366  //   The request exceeded a limit. Try your request again.
  4367  //
  4368  //   * InternalFailureException
  4369  //   An internal Amazon Lex error occurred. Try your request again.
  4370  //
  4371  //   * BadRequestException
  4372  //   The request is not well formed. For example, a value is invalid or a required
  4373  //   field is missing. Check the field values, and try again.
  4374  //
  4375  //   * PreconditionFailedException
  4376  //   The checksum of the resource that you are trying to change does not match
  4377  //   the checksum in the request. Check the resource's checksum and try again.
  4378  //
  4379  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
  4380  func (c *LexModelBuildingService) PutIntent(input *PutIntentInput) (*PutIntentOutput, error) {
  4381  	req, out := c.PutIntentRequest(input)
  4382  	return out, req.Send()
  4383  }
  4384  
  4385  // PutIntentWithContext is the same as PutIntent with the addition of
  4386  // the ability to pass a context and additional request options.
  4387  //
  4388  // See PutIntent for details on how to use this API operation.
  4389  //
  4390  // The context must be non-nil and will be used for request cancellation. If
  4391  // the context is nil a panic will occur. In the future the SDK may create
  4392  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4393  // for more information on using Contexts.
  4394  func (c *LexModelBuildingService) PutIntentWithContext(ctx aws.Context, input *PutIntentInput, opts ...request.Option) (*PutIntentOutput, error) {
  4395  	req, out := c.PutIntentRequest(input)
  4396  	req.SetContext(ctx)
  4397  	req.ApplyOptions(opts...)
  4398  	return out, req.Send()
  4399  }
  4400  
  4401  const opPutSlotType = "PutSlotType"
  4402  
  4403  // PutSlotTypeRequest generates a "aws/request.Request" representing the
  4404  // client's request for the PutSlotType operation. The "output" return
  4405  // value will be populated with the request's response once the request completes
  4406  // successfully.
  4407  //
  4408  // Use "Send" method on the returned Request to send the API call to the service.
  4409  // the "output" return value is not valid until after Send returns without error.
  4410  //
  4411  // See PutSlotType for more information on using the PutSlotType
  4412  // API call, and error handling.
  4413  //
  4414  // This method is useful when you want to inject custom logic or configuration
  4415  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4416  //
  4417  //
  4418  //    // Example sending a request using the PutSlotTypeRequest method.
  4419  //    req, resp := client.PutSlotTypeRequest(params)
  4420  //
  4421  //    err := req.Send()
  4422  //    if err == nil { // resp is now filled
  4423  //        fmt.Println(resp)
  4424  //    }
  4425  //
  4426  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
  4427  func (c *LexModelBuildingService) PutSlotTypeRequest(input *PutSlotTypeInput) (req *request.Request, output *PutSlotTypeOutput) {
  4428  	op := &request.Operation{
  4429  		Name:       opPutSlotType,
  4430  		HTTPMethod: "PUT",
  4431  		HTTPPath:   "/slottypes/{name}/versions/$LATEST",
  4432  	}
  4433  
  4434  	if input == nil {
  4435  		input = &PutSlotTypeInput{}
  4436  	}
  4437  
  4438  	output = &PutSlotTypeOutput{}
  4439  	req = c.newRequest(op, input, output)
  4440  	return
  4441  }
  4442  
  4443  // PutSlotType API operation for Amazon Lex Model Building Service.
  4444  //
  4445  // Creates a custom slot type or replaces an existing custom slot type.
  4446  //
  4447  // To create a custom slot type, specify a name for the slot type and a set
  4448  // of enumeration values, which are the values that a slot of this type can
  4449  // assume. For more information, see how-it-works.
  4450  //
  4451  // If you specify the name of an existing slot type, the fields in the request
  4452  // replace the existing values in the $LATEST version of the slot type. Amazon
  4453  // Lex removes the fields that you don't provide in the request. If you don't
  4454  // specify required fields, Amazon Lex throws an exception. When you update
  4455  // the $LATEST version of a slot type, if a bot uses the $LATEST version of
  4456  // an intent that contains the slot type, the bot's status field is set to NOT_BUILT.
  4457  //
  4458  // This operation requires permissions for the lex:PutSlotType action.
  4459  //
  4460  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4461  // with awserr.Error's Code and Message methods to get detailed information about
  4462  // the error.
  4463  //
  4464  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4465  // API operation PutSlotType for usage and error information.
  4466  //
  4467  // Returned Error Types:
  4468  //   * ConflictException
  4469  //   There was a conflict processing the request. Try your request again.
  4470  //
  4471  //   * LimitExceededException
  4472  //   The request exceeded a limit. Try your request again.
  4473  //
  4474  //   * InternalFailureException
  4475  //   An internal Amazon Lex error occurred. Try your request again.
  4476  //
  4477  //   * BadRequestException
  4478  //   The request is not well formed. For example, a value is invalid or a required
  4479  //   field is missing. Check the field values, and try again.
  4480  //
  4481  //   * PreconditionFailedException
  4482  //   The checksum of the resource that you are trying to change does not match
  4483  //   the checksum in the request. Check the resource's checksum and try again.
  4484  //
  4485  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
  4486  func (c *LexModelBuildingService) PutSlotType(input *PutSlotTypeInput) (*PutSlotTypeOutput, error) {
  4487  	req, out := c.PutSlotTypeRequest(input)
  4488  	return out, req.Send()
  4489  }
  4490  
  4491  // PutSlotTypeWithContext is the same as PutSlotType with the addition of
  4492  // the ability to pass a context and additional request options.
  4493  //
  4494  // See PutSlotType for details on how to use this API operation.
  4495  //
  4496  // The context must be non-nil and will be used for request cancellation. If
  4497  // the context is nil a panic will occur. In the future the SDK may create
  4498  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4499  // for more information on using Contexts.
  4500  func (c *LexModelBuildingService) PutSlotTypeWithContext(ctx aws.Context, input *PutSlotTypeInput, opts ...request.Option) (*PutSlotTypeOutput, error) {
  4501  	req, out := c.PutSlotTypeRequest(input)
  4502  	req.SetContext(ctx)
  4503  	req.ApplyOptions(opts...)
  4504  	return out, req.Send()
  4505  }
  4506  
  4507  const opStartImport = "StartImport"
  4508  
  4509  // StartImportRequest generates a "aws/request.Request" representing the
  4510  // client's request for the StartImport operation. The "output" return
  4511  // value will be populated with the request's response once the request completes
  4512  // successfully.
  4513  //
  4514  // Use "Send" method on the returned Request to send the API call to the service.
  4515  // the "output" return value is not valid until after Send returns without error.
  4516  //
  4517  // See StartImport for more information on using the StartImport
  4518  // API call, and error handling.
  4519  //
  4520  // This method is useful when you want to inject custom logic or configuration
  4521  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4522  //
  4523  //
  4524  //    // Example sending a request using the StartImportRequest method.
  4525  //    req, resp := client.StartImportRequest(params)
  4526  //
  4527  //    err := req.Send()
  4528  //    if err == nil { // resp is now filled
  4529  //        fmt.Println(resp)
  4530  //    }
  4531  //
  4532  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
  4533  func (c *LexModelBuildingService) StartImportRequest(input *StartImportInput) (req *request.Request, output *StartImportOutput) {
  4534  	op := &request.Operation{
  4535  		Name:       opStartImport,
  4536  		HTTPMethod: "POST",
  4537  		HTTPPath:   "/imports/",
  4538  	}
  4539  
  4540  	if input == nil {
  4541  		input = &StartImportInput{}
  4542  	}
  4543  
  4544  	output = &StartImportOutput{}
  4545  	req = c.newRequest(op, input, output)
  4546  	return
  4547  }
  4548  
  4549  // StartImport API operation for Amazon Lex Model Building Service.
  4550  //
  4551  // Starts a job to import a resource to Amazon Lex.
  4552  //
  4553  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4554  // with awserr.Error's Code and Message methods to get detailed information about
  4555  // the error.
  4556  //
  4557  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4558  // API operation StartImport for usage and error information.
  4559  //
  4560  // Returned Error Types:
  4561  //   * LimitExceededException
  4562  //   The request exceeded a limit. Try your request again.
  4563  //
  4564  //   * InternalFailureException
  4565  //   An internal Amazon Lex error occurred. Try your request again.
  4566  //
  4567  //   * BadRequestException
  4568  //   The request is not well formed. For example, a value is invalid or a required
  4569  //   field is missing. Check the field values, and try again.
  4570  //
  4571  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
  4572  func (c *LexModelBuildingService) StartImport(input *StartImportInput) (*StartImportOutput, error) {
  4573  	req, out := c.StartImportRequest(input)
  4574  	return out, req.Send()
  4575  }
  4576  
  4577  // StartImportWithContext is the same as StartImport with the addition of
  4578  // the ability to pass a context and additional request options.
  4579  //
  4580  // See StartImport for details on how to use this API operation.
  4581  //
  4582  // The context must be non-nil and will be used for request cancellation. If
  4583  // the context is nil a panic will occur. In the future the SDK may create
  4584  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4585  // for more information on using Contexts.
  4586  func (c *LexModelBuildingService) StartImportWithContext(ctx aws.Context, input *StartImportInput, opts ...request.Option) (*StartImportOutput, error) {
  4587  	req, out := c.StartImportRequest(input)
  4588  	req.SetContext(ctx)
  4589  	req.ApplyOptions(opts...)
  4590  	return out, req.Send()
  4591  }
  4592  
  4593  const opStartMigration = "StartMigration"
  4594  
  4595  // StartMigrationRequest generates a "aws/request.Request" representing the
  4596  // client's request for the StartMigration operation. The "output" return
  4597  // value will be populated with the request's response once the request completes
  4598  // successfully.
  4599  //
  4600  // Use "Send" method on the returned Request to send the API call to the service.
  4601  // the "output" return value is not valid until after Send returns without error.
  4602  //
  4603  // See StartMigration for more information on using the StartMigration
  4604  // API call, and error handling.
  4605  //
  4606  // This method is useful when you want to inject custom logic or configuration
  4607  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4608  //
  4609  //
  4610  //    // Example sending a request using the StartMigrationRequest method.
  4611  //    req, resp := client.StartMigrationRequest(params)
  4612  //
  4613  //    err := req.Send()
  4614  //    if err == nil { // resp is now filled
  4615  //        fmt.Println(resp)
  4616  //    }
  4617  //
  4618  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartMigration
  4619  func (c *LexModelBuildingService) StartMigrationRequest(input *StartMigrationInput) (req *request.Request, output *StartMigrationOutput) {
  4620  	op := &request.Operation{
  4621  		Name:       opStartMigration,
  4622  		HTTPMethod: "POST",
  4623  		HTTPPath:   "/migrations",
  4624  	}
  4625  
  4626  	if input == nil {
  4627  		input = &StartMigrationInput{}
  4628  	}
  4629  
  4630  	output = &StartMigrationOutput{}
  4631  	req = c.newRequest(op, input, output)
  4632  	return
  4633  }
  4634  
  4635  // StartMigration API operation for Amazon Lex Model Building Service.
  4636  //
  4637  // Starts migrating a bot from Amazon Lex V1 to Amazon Lex V2. Migrate your
  4638  // bot when you want to take advantage of the new features of Amazon Lex V2.
  4639  //
  4640  // For more information, see Migrating a bot (https://docs.aws.amazon.com/lex/latest/dg/migrate.html)
  4641  // in the Amazon Lex developer guide.
  4642  //
  4643  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4644  // with awserr.Error's Code and Message methods to get detailed information about
  4645  // the error.
  4646  //
  4647  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4648  // API operation StartMigration for usage and error information.
  4649  //
  4650  // Returned Error Types:
  4651  //   * LimitExceededException
  4652  //   The request exceeded a limit. Try your request again.
  4653  //
  4654  //   * InternalFailureException
  4655  //   An internal Amazon Lex error occurred. Try your request again.
  4656  //
  4657  //   * BadRequestException
  4658  //   The request is not well formed. For example, a value is invalid or a required
  4659  //   field is missing. Check the field values, and try again.
  4660  //
  4661  //   * AccessDeniedException
  4662  //   Your IAM user or role does not have permission to call the Amazon Lex V2
  4663  //   APIs required to migrate your bot.
  4664  //
  4665  //   * NotFoundException
  4666  //   The resource specified in the request was not found. Check the resource and
  4667  //   try again.
  4668  //
  4669  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartMigration
  4670  func (c *LexModelBuildingService) StartMigration(input *StartMigrationInput) (*StartMigrationOutput, error) {
  4671  	req, out := c.StartMigrationRequest(input)
  4672  	return out, req.Send()
  4673  }
  4674  
  4675  // StartMigrationWithContext is the same as StartMigration with the addition of
  4676  // the ability to pass a context and additional request options.
  4677  //
  4678  // See StartMigration for details on how to use this API operation.
  4679  //
  4680  // The context must be non-nil and will be used for request cancellation. If
  4681  // the context is nil a panic will occur. In the future the SDK may create
  4682  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4683  // for more information on using Contexts.
  4684  func (c *LexModelBuildingService) StartMigrationWithContext(ctx aws.Context, input *StartMigrationInput, opts ...request.Option) (*StartMigrationOutput, error) {
  4685  	req, out := c.StartMigrationRequest(input)
  4686  	req.SetContext(ctx)
  4687  	req.ApplyOptions(opts...)
  4688  	return out, req.Send()
  4689  }
  4690  
  4691  const opTagResource = "TagResource"
  4692  
  4693  // TagResourceRequest generates a "aws/request.Request" representing the
  4694  // client's request for the TagResource operation. The "output" return
  4695  // value will be populated with the request's response once the request completes
  4696  // successfully.
  4697  //
  4698  // Use "Send" method on the returned Request to send the API call to the service.
  4699  // the "output" return value is not valid until after Send returns without error.
  4700  //
  4701  // See TagResource for more information on using the TagResource
  4702  // API call, and error handling.
  4703  //
  4704  // This method is useful when you want to inject custom logic or configuration
  4705  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4706  //
  4707  //
  4708  //    // Example sending a request using the TagResourceRequest method.
  4709  //    req, resp := client.TagResourceRequest(params)
  4710  //
  4711  //    err := req.Send()
  4712  //    if err == nil { // resp is now filled
  4713  //        fmt.Println(resp)
  4714  //    }
  4715  //
  4716  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
  4717  func (c *LexModelBuildingService) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  4718  	op := &request.Operation{
  4719  		Name:       opTagResource,
  4720  		HTTPMethod: "POST",
  4721  		HTTPPath:   "/tags/{resourceArn}",
  4722  	}
  4723  
  4724  	if input == nil {
  4725  		input = &TagResourceInput{}
  4726  	}
  4727  
  4728  	output = &TagResourceOutput{}
  4729  	req = c.newRequest(op, input, output)
  4730  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4731  	return
  4732  }
  4733  
  4734  // TagResource API operation for Amazon Lex Model Building Service.
  4735  //
  4736  // Adds the specified tags to the specified resource. If a tag key already exists,
  4737  // the existing value is replaced with the new value.
  4738  //
  4739  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4740  // with awserr.Error's Code and Message methods to get detailed information about
  4741  // the error.
  4742  //
  4743  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4744  // API operation TagResource for usage and error information.
  4745  //
  4746  // Returned Error Types:
  4747  //   * NotFoundException
  4748  //   The resource specified in the request was not found. Check the resource and
  4749  //   try again.
  4750  //
  4751  //   * BadRequestException
  4752  //   The request is not well formed. For example, a value is invalid or a required
  4753  //   field is missing. Check the field values, and try again.
  4754  //
  4755  //   * ConflictException
  4756  //   There was a conflict processing the request. Try your request again.
  4757  //
  4758  //   * InternalFailureException
  4759  //   An internal Amazon Lex error occurred. Try your request again.
  4760  //
  4761  //   * LimitExceededException
  4762  //   The request exceeded a limit. Try your request again.
  4763  //
  4764  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
  4765  func (c *LexModelBuildingService) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  4766  	req, out := c.TagResourceRequest(input)
  4767  	return out, req.Send()
  4768  }
  4769  
  4770  // TagResourceWithContext is the same as TagResource with the addition of
  4771  // the ability to pass a context and additional request options.
  4772  //
  4773  // See TagResource for details on how to use this API operation.
  4774  //
  4775  // The context must be non-nil and will be used for request cancellation. If
  4776  // the context is nil a panic will occur. In the future the SDK may create
  4777  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4778  // for more information on using Contexts.
  4779  func (c *LexModelBuildingService) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  4780  	req, out := c.TagResourceRequest(input)
  4781  	req.SetContext(ctx)
  4782  	req.ApplyOptions(opts...)
  4783  	return out, req.Send()
  4784  }
  4785  
  4786  const opUntagResource = "UntagResource"
  4787  
  4788  // UntagResourceRequest generates a "aws/request.Request" representing the
  4789  // client's request for the UntagResource operation. The "output" return
  4790  // value will be populated with the request's response once the request completes
  4791  // successfully.
  4792  //
  4793  // Use "Send" method on the returned Request to send the API call to the service.
  4794  // the "output" return value is not valid until after Send returns without error.
  4795  //
  4796  // See UntagResource for more information on using the UntagResource
  4797  // API call, and error handling.
  4798  //
  4799  // This method is useful when you want to inject custom logic or configuration
  4800  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4801  //
  4802  //
  4803  //    // Example sending a request using the UntagResourceRequest method.
  4804  //    req, resp := client.UntagResourceRequest(params)
  4805  //
  4806  //    err := req.Send()
  4807  //    if err == nil { // resp is now filled
  4808  //        fmt.Println(resp)
  4809  //    }
  4810  //
  4811  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
  4812  func (c *LexModelBuildingService) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  4813  	op := &request.Operation{
  4814  		Name:       opUntagResource,
  4815  		HTTPMethod: "DELETE",
  4816  		HTTPPath:   "/tags/{resourceArn}",
  4817  	}
  4818  
  4819  	if input == nil {
  4820  		input = &UntagResourceInput{}
  4821  	}
  4822  
  4823  	output = &UntagResourceOutput{}
  4824  	req = c.newRequest(op, input, output)
  4825  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4826  	return
  4827  }
  4828  
  4829  // UntagResource API operation for Amazon Lex Model Building Service.
  4830  //
  4831  // Removes tags from a bot, bot alias or bot channel.
  4832  //
  4833  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4834  // with awserr.Error's Code and Message methods to get detailed information about
  4835  // the error.
  4836  //
  4837  // See the AWS API reference guide for Amazon Lex Model Building Service's
  4838  // API operation UntagResource for usage and error information.
  4839  //
  4840  // Returned Error Types:
  4841  //   * NotFoundException
  4842  //   The resource specified in the request was not found. Check the resource and
  4843  //   try again.
  4844  //
  4845  //   * BadRequestException
  4846  //   The request is not well formed. For example, a value is invalid or a required
  4847  //   field is missing. Check the field values, and try again.
  4848  //
  4849  //   * ConflictException
  4850  //   There was a conflict processing the request. Try your request again.
  4851  //
  4852  //   * InternalFailureException
  4853  //   An internal Amazon Lex error occurred. Try your request again.
  4854  //
  4855  //   * LimitExceededException
  4856  //   The request exceeded a limit. Try your request again.
  4857  //
  4858  // See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
  4859  func (c *LexModelBuildingService) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  4860  	req, out := c.UntagResourceRequest(input)
  4861  	return out, req.Send()
  4862  }
  4863  
  4864  // UntagResourceWithContext is the same as UntagResource with the addition of
  4865  // the ability to pass a context and additional request options.
  4866  //
  4867  // See UntagResource for details on how to use this API operation.
  4868  //
  4869  // The context must be non-nil and will be used for request cancellation. If
  4870  // the context is nil a panic will occur. In the future the SDK may create
  4871  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4872  // for more information on using Contexts.
  4873  func (c *LexModelBuildingService) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  4874  	req, out := c.UntagResourceRequest(input)
  4875  	req.SetContext(ctx)
  4876  	req.ApplyOptions(opts...)
  4877  	return out, req.Send()
  4878  }
  4879  
  4880  // Your IAM user or role does not have permission to call the Amazon Lex V2
  4881  // APIs required to migrate your bot.
  4882  type AccessDeniedException struct {
  4883  	_            struct{}                  `type:"structure"`
  4884  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4885  
  4886  	Message_ *string `locationName:"message" type:"string"`
  4887  }
  4888  
  4889  // String returns the string representation.
  4890  //
  4891  // API parameter values that are decorated as "sensitive" in the API will not
  4892  // be included in the string output. The member name will be present, but the
  4893  // value will be replaced with "sensitive".
  4894  func (s AccessDeniedException) String() string {
  4895  	return awsutil.Prettify(s)
  4896  }
  4897  
  4898  // GoString returns the string representation.
  4899  //
  4900  // API parameter values that are decorated as "sensitive" in the API will not
  4901  // be included in the string output. The member name will be present, but the
  4902  // value will be replaced with "sensitive".
  4903  func (s AccessDeniedException) GoString() string {
  4904  	return s.String()
  4905  }
  4906  
  4907  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  4908  	return &AccessDeniedException{
  4909  		RespMetadata: v,
  4910  	}
  4911  }
  4912  
  4913  // Code returns the exception type name.
  4914  func (s *AccessDeniedException) Code() string {
  4915  	return "AccessDeniedException"
  4916  }
  4917  
  4918  // Message returns the exception's message.
  4919  func (s *AccessDeniedException) Message() string {
  4920  	if s.Message_ != nil {
  4921  		return *s.Message_
  4922  	}
  4923  	return ""
  4924  }
  4925  
  4926  // OrigErr always returns nil, satisfies awserr.Error interface.
  4927  func (s *AccessDeniedException) OrigErr() error {
  4928  	return nil
  4929  }
  4930  
  4931  func (s *AccessDeniedException) Error() string {
  4932  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4933  }
  4934  
  4935  // Status code returns the HTTP status code for the request's response error.
  4936  func (s *AccessDeniedException) StatusCode() int {
  4937  	return s.RespMetadata.StatusCode
  4938  }
  4939  
  4940  // RequestID returns the service's response RequestID for request.
  4941  func (s *AccessDeniedException) RequestID() string {
  4942  	return s.RespMetadata.RequestID
  4943  }
  4944  
  4945  // The request is not well formed. For example, a value is invalid or a required
  4946  // field is missing. Check the field values, and try again.
  4947  type BadRequestException struct {
  4948  	_            struct{}                  `type:"structure"`
  4949  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4950  
  4951  	Message_ *string `locationName:"message" type:"string"`
  4952  }
  4953  
  4954  // String returns the string representation.
  4955  //
  4956  // API parameter values that are decorated as "sensitive" in the API will not
  4957  // be included in the string output. The member name will be present, but the
  4958  // value will be replaced with "sensitive".
  4959  func (s BadRequestException) String() string {
  4960  	return awsutil.Prettify(s)
  4961  }
  4962  
  4963  // GoString returns the string representation.
  4964  //
  4965  // API parameter values that are decorated as "sensitive" in the API will not
  4966  // be included in the string output. The member name will be present, but the
  4967  // value will be replaced with "sensitive".
  4968  func (s BadRequestException) GoString() string {
  4969  	return s.String()
  4970  }
  4971  
  4972  func newErrorBadRequestException(v protocol.ResponseMetadata) error {
  4973  	return &BadRequestException{
  4974  		RespMetadata: v,
  4975  	}
  4976  }
  4977  
  4978  // Code returns the exception type name.
  4979  func (s *BadRequestException) Code() string {
  4980  	return "BadRequestException"
  4981  }
  4982  
  4983  // Message returns the exception's message.
  4984  func (s *BadRequestException) Message() string {
  4985  	if s.Message_ != nil {
  4986  		return *s.Message_
  4987  	}
  4988  	return ""
  4989  }
  4990  
  4991  // OrigErr always returns nil, satisfies awserr.Error interface.
  4992  func (s *BadRequestException) OrigErr() error {
  4993  	return nil
  4994  }
  4995  
  4996  func (s *BadRequestException) Error() string {
  4997  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4998  }
  4999  
  5000  // Status code returns the HTTP status code for the request's response error.
  5001  func (s *BadRequestException) StatusCode() int {
  5002  	return s.RespMetadata.StatusCode
  5003  }
  5004  
  5005  // RequestID returns the service's response RequestID for request.
  5006  func (s *BadRequestException) RequestID() string {
  5007  	return s.RespMetadata.RequestID
  5008  }
  5009  
  5010  // Provides information about a bot alias.
  5011  type BotAliasMetadata struct {
  5012  	_ struct{} `type:"structure"`
  5013  
  5014  	// The name of the bot to which the alias points.
  5015  	BotName *string `locationName:"botName" min:"2" type:"string"`
  5016  
  5017  	// The version of the Amazon Lex bot to which the alias points.
  5018  	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
  5019  
  5020  	// Checksum of the bot alias.
  5021  	Checksum *string `locationName:"checksum" type:"string"`
  5022  
  5023  	// Settings that determine how Amazon Lex uses conversation logs for the alias.
  5024  	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
  5025  
  5026  	// The date that the bot alias was created.
  5027  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  5028  
  5029  	// A description of the bot alias.
  5030  	Description *string `locationName:"description" type:"string"`
  5031  
  5032  	// The date that the bot alias was updated. When you create a resource, the
  5033  	// creation date and last updated date are the same.
  5034  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  5035  
  5036  	// The name of the bot alias.
  5037  	Name *string `locationName:"name" min:"1" type:"string"`
  5038  }
  5039  
  5040  // String returns the string representation.
  5041  //
  5042  // API parameter values that are decorated as "sensitive" in the API will not
  5043  // be included in the string output. The member name will be present, but the
  5044  // value will be replaced with "sensitive".
  5045  func (s BotAliasMetadata) String() string {
  5046  	return awsutil.Prettify(s)
  5047  }
  5048  
  5049  // GoString returns the string representation.
  5050  //
  5051  // API parameter values that are decorated as "sensitive" in the API will not
  5052  // be included in the string output. The member name will be present, but the
  5053  // value will be replaced with "sensitive".
  5054  func (s BotAliasMetadata) GoString() string {
  5055  	return s.String()
  5056  }
  5057  
  5058  // SetBotName sets the BotName field's value.
  5059  func (s *BotAliasMetadata) SetBotName(v string) *BotAliasMetadata {
  5060  	s.BotName = &v
  5061  	return s
  5062  }
  5063  
  5064  // SetBotVersion sets the BotVersion field's value.
  5065  func (s *BotAliasMetadata) SetBotVersion(v string) *BotAliasMetadata {
  5066  	s.BotVersion = &v
  5067  	return s
  5068  }
  5069  
  5070  // SetChecksum sets the Checksum field's value.
  5071  func (s *BotAliasMetadata) SetChecksum(v string) *BotAliasMetadata {
  5072  	s.Checksum = &v
  5073  	return s
  5074  }
  5075  
  5076  // SetConversationLogs sets the ConversationLogs field's value.
  5077  func (s *BotAliasMetadata) SetConversationLogs(v *ConversationLogsResponse) *BotAliasMetadata {
  5078  	s.ConversationLogs = v
  5079  	return s
  5080  }
  5081  
  5082  // SetCreatedDate sets the CreatedDate field's value.
  5083  func (s *BotAliasMetadata) SetCreatedDate(v time.Time) *BotAliasMetadata {
  5084  	s.CreatedDate = &v
  5085  	return s
  5086  }
  5087  
  5088  // SetDescription sets the Description field's value.
  5089  func (s *BotAliasMetadata) SetDescription(v string) *BotAliasMetadata {
  5090  	s.Description = &v
  5091  	return s
  5092  }
  5093  
  5094  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  5095  func (s *BotAliasMetadata) SetLastUpdatedDate(v time.Time) *BotAliasMetadata {
  5096  	s.LastUpdatedDate = &v
  5097  	return s
  5098  }
  5099  
  5100  // SetName sets the Name field's value.
  5101  func (s *BotAliasMetadata) SetName(v string) *BotAliasMetadata {
  5102  	s.Name = &v
  5103  	return s
  5104  }
  5105  
  5106  // Represents an association between an Amazon Lex bot and an external messaging
  5107  // platform.
  5108  type BotChannelAssociation struct {
  5109  	_ struct{} `type:"structure"`
  5110  
  5111  	// An alias pointing to the specific version of the Amazon Lex bot to which
  5112  	// this association is being made.
  5113  	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
  5114  
  5115  	// Provides information necessary to communicate with the messaging platform.
  5116  	//
  5117  	// BotConfiguration is a sensitive parameter and its value will be
  5118  	// replaced with "sensitive" in string returned by BotChannelAssociation's
  5119  	// String and GoString methods.
  5120  	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
  5121  
  5122  	// The name of the Amazon Lex bot to which this association is being made.
  5123  	//
  5124  	// Currently, Amazon Lex supports associations with Facebook and Slack, and
  5125  	// Twilio.
  5126  	BotName *string `locationName:"botName" min:"2" type:"string"`
  5127  
  5128  	// The date that the association between the Amazon Lex bot and the channel
  5129  	// was created.
  5130  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  5131  
  5132  	// A text description of the association you are creating.
  5133  	Description *string `locationName:"description" type:"string"`
  5134  
  5135  	// If status is FAILED, Amazon Lex provides the reason that it failed to create
  5136  	// the association.
  5137  	FailureReason *string `locationName:"failureReason" type:"string"`
  5138  
  5139  	// The name of the association between the bot and the channel.
  5140  	Name *string `locationName:"name" min:"1" type:"string"`
  5141  
  5142  	// The status of the bot channel.
  5143  	//
  5144  	//    * CREATED - The channel has been created and is ready for use.
  5145  	//
  5146  	//    * IN_PROGRESS - Channel creation is in progress.
  5147  	//
  5148  	//    * FAILED - There was an error creating the channel. For information about
  5149  	//    the reason for the failure, see the failureReason field.
  5150  	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
  5151  
  5152  	// Specifies the type of association by indicating the type of channel being
  5153  	// established between the Amazon Lex bot and the external messaging platform.
  5154  	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
  5155  }
  5156  
  5157  // String returns the string representation.
  5158  //
  5159  // API parameter values that are decorated as "sensitive" in the API will not
  5160  // be included in the string output. The member name will be present, but the
  5161  // value will be replaced with "sensitive".
  5162  func (s BotChannelAssociation) String() string {
  5163  	return awsutil.Prettify(s)
  5164  }
  5165  
  5166  // GoString returns the string representation.
  5167  //
  5168  // API parameter values that are decorated as "sensitive" in the API will not
  5169  // be included in the string output. The member name will be present, but the
  5170  // value will be replaced with "sensitive".
  5171  func (s BotChannelAssociation) GoString() string {
  5172  	return s.String()
  5173  }
  5174  
  5175  // SetBotAlias sets the BotAlias field's value.
  5176  func (s *BotChannelAssociation) SetBotAlias(v string) *BotChannelAssociation {
  5177  	s.BotAlias = &v
  5178  	return s
  5179  }
  5180  
  5181  // SetBotConfiguration sets the BotConfiguration field's value.
  5182  func (s *BotChannelAssociation) SetBotConfiguration(v map[string]*string) *BotChannelAssociation {
  5183  	s.BotConfiguration = v
  5184  	return s
  5185  }
  5186  
  5187  // SetBotName sets the BotName field's value.
  5188  func (s *BotChannelAssociation) SetBotName(v string) *BotChannelAssociation {
  5189  	s.BotName = &v
  5190  	return s
  5191  }
  5192  
  5193  // SetCreatedDate sets the CreatedDate field's value.
  5194  func (s *BotChannelAssociation) SetCreatedDate(v time.Time) *BotChannelAssociation {
  5195  	s.CreatedDate = &v
  5196  	return s
  5197  }
  5198  
  5199  // SetDescription sets the Description field's value.
  5200  func (s *BotChannelAssociation) SetDescription(v string) *BotChannelAssociation {
  5201  	s.Description = &v
  5202  	return s
  5203  }
  5204  
  5205  // SetFailureReason sets the FailureReason field's value.
  5206  func (s *BotChannelAssociation) SetFailureReason(v string) *BotChannelAssociation {
  5207  	s.FailureReason = &v
  5208  	return s
  5209  }
  5210  
  5211  // SetName sets the Name field's value.
  5212  func (s *BotChannelAssociation) SetName(v string) *BotChannelAssociation {
  5213  	s.Name = &v
  5214  	return s
  5215  }
  5216  
  5217  // SetStatus sets the Status field's value.
  5218  func (s *BotChannelAssociation) SetStatus(v string) *BotChannelAssociation {
  5219  	s.Status = &v
  5220  	return s
  5221  }
  5222  
  5223  // SetType sets the Type field's value.
  5224  func (s *BotChannelAssociation) SetType(v string) *BotChannelAssociation {
  5225  	s.Type = &v
  5226  	return s
  5227  }
  5228  
  5229  // Provides information about a bot. .
  5230  type BotMetadata struct {
  5231  	_ struct{} `type:"structure"`
  5232  
  5233  	// The date that the bot was created.
  5234  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  5235  
  5236  	// A description of the bot.
  5237  	Description *string `locationName:"description" type:"string"`
  5238  
  5239  	// The date that the bot was updated. When you create a bot, the creation date
  5240  	// and last updated date are the same.
  5241  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  5242  
  5243  	// The name of the bot.
  5244  	Name *string `locationName:"name" min:"2" type:"string"`
  5245  
  5246  	// The status of the bot.
  5247  	Status *string `locationName:"status" type:"string" enum:"Status"`
  5248  
  5249  	// The version of the bot. For a new bot, the version is always $LATEST.
  5250  	Version *string `locationName:"version" min:"1" type:"string"`
  5251  }
  5252  
  5253  // String returns the string representation.
  5254  //
  5255  // API parameter values that are decorated as "sensitive" in the API will not
  5256  // be included in the string output. The member name will be present, but the
  5257  // value will be replaced with "sensitive".
  5258  func (s BotMetadata) String() string {
  5259  	return awsutil.Prettify(s)
  5260  }
  5261  
  5262  // GoString returns the string representation.
  5263  //
  5264  // API parameter values that are decorated as "sensitive" in the API will not
  5265  // be included in the string output. The member name will be present, but the
  5266  // value will be replaced with "sensitive".
  5267  func (s BotMetadata) GoString() string {
  5268  	return s.String()
  5269  }
  5270  
  5271  // SetCreatedDate sets the CreatedDate field's value.
  5272  func (s *BotMetadata) SetCreatedDate(v time.Time) *BotMetadata {
  5273  	s.CreatedDate = &v
  5274  	return s
  5275  }
  5276  
  5277  // SetDescription sets the Description field's value.
  5278  func (s *BotMetadata) SetDescription(v string) *BotMetadata {
  5279  	s.Description = &v
  5280  	return s
  5281  }
  5282  
  5283  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  5284  func (s *BotMetadata) SetLastUpdatedDate(v time.Time) *BotMetadata {
  5285  	s.LastUpdatedDate = &v
  5286  	return s
  5287  }
  5288  
  5289  // SetName sets the Name field's value.
  5290  func (s *BotMetadata) SetName(v string) *BotMetadata {
  5291  	s.Name = &v
  5292  	return s
  5293  }
  5294  
  5295  // SetStatus sets the Status field's value.
  5296  func (s *BotMetadata) SetStatus(v string) *BotMetadata {
  5297  	s.Status = &v
  5298  	return s
  5299  }
  5300  
  5301  // SetVersion sets the Version field's value.
  5302  func (s *BotMetadata) SetVersion(v string) *BotMetadata {
  5303  	s.Version = &v
  5304  	return s
  5305  }
  5306  
  5307  // Provides metadata for a built-in intent.
  5308  type BuiltinIntentMetadata struct {
  5309  	_ struct{} `type:"structure"`
  5310  
  5311  	// A unique identifier for the built-in intent. To find the signature for an
  5312  	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
  5313  	// in the Alexa Skills Kit.
  5314  	Signature *string `locationName:"signature" type:"string"`
  5315  
  5316  	// A list of identifiers for the locales that the intent supports.
  5317  	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
  5318  }
  5319  
  5320  // String returns the string representation.
  5321  //
  5322  // API parameter values that are decorated as "sensitive" in the API will not
  5323  // be included in the string output. The member name will be present, but the
  5324  // value will be replaced with "sensitive".
  5325  func (s BuiltinIntentMetadata) String() string {
  5326  	return awsutil.Prettify(s)
  5327  }
  5328  
  5329  // GoString returns the string representation.
  5330  //
  5331  // API parameter values that are decorated as "sensitive" in the API will not
  5332  // be included in the string output. The member name will be present, but the
  5333  // value will be replaced with "sensitive".
  5334  func (s BuiltinIntentMetadata) GoString() string {
  5335  	return s.String()
  5336  }
  5337  
  5338  // SetSignature sets the Signature field's value.
  5339  func (s *BuiltinIntentMetadata) SetSignature(v string) *BuiltinIntentMetadata {
  5340  	s.Signature = &v
  5341  	return s
  5342  }
  5343  
  5344  // SetSupportedLocales sets the SupportedLocales field's value.
  5345  func (s *BuiltinIntentMetadata) SetSupportedLocales(v []*string) *BuiltinIntentMetadata {
  5346  	s.SupportedLocales = v
  5347  	return s
  5348  }
  5349  
  5350  // Provides information about a slot used in a built-in intent.
  5351  type BuiltinIntentSlot struct {
  5352  	_ struct{} `type:"structure"`
  5353  
  5354  	// A list of the slots defined for the intent.
  5355  	Name *string `locationName:"name" type:"string"`
  5356  }
  5357  
  5358  // String returns the string representation.
  5359  //
  5360  // API parameter values that are decorated as "sensitive" in the API will not
  5361  // be included in the string output. The member name will be present, but the
  5362  // value will be replaced with "sensitive".
  5363  func (s BuiltinIntentSlot) String() string {
  5364  	return awsutil.Prettify(s)
  5365  }
  5366  
  5367  // GoString returns the string representation.
  5368  //
  5369  // API parameter values that are decorated as "sensitive" in the API will not
  5370  // be included in the string output. The member name will be present, but the
  5371  // value will be replaced with "sensitive".
  5372  func (s BuiltinIntentSlot) GoString() string {
  5373  	return s.String()
  5374  }
  5375  
  5376  // SetName sets the Name field's value.
  5377  func (s *BuiltinIntentSlot) SetName(v string) *BuiltinIntentSlot {
  5378  	s.Name = &v
  5379  	return s
  5380  }
  5381  
  5382  // Provides information about a built in slot type.
  5383  type BuiltinSlotTypeMetadata struct {
  5384  	_ struct{} `type:"structure"`
  5385  
  5386  	// A unique identifier for the built-in slot type. To find the signature for
  5387  	// a slot type, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
  5388  	// in the Alexa Skills Kit.
  5389  	Signature *string `locationName:"signature" type:"string"`
  5390  
  5391  	// A list of target locales for the slot.
  5392  	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
  5393  }
  5394  
  5395  // String returns the string representation.
  5396  //
  5397  // API parameter values that are decorated as "sensitive" in the API will not
  5398  // be included in the string output. The member name will be present, but the
  5399  // value will be replaced with "sensitive".
  5400  func (s BuiltinSlotTypeMetadata) String() string {
  5401  	return awsutil.Prettify(s)
  5402  }
  5403  
  5404  // GoString returns the string representation.
  5405  //
  5406  // API parameter values that are decorated as "sensitive" in the API will not
  5407  // be included in the string output. The member name will be present, but the
  5408  // value will be replaced with "sensitive".
  5409  func (s BuiltinSlotTypeMetadata) GoString() string {
  5410  	return s.String()
  5411  }
  5412  
  5413  // SetSignature sets the Signature field's value.
  5414  func (s *BuiltinSlotTypeMetadata) SetSignature(v string) *BuiltinSlotTypeMetadata {
  5415  	s.Signature = &v
  5416  	return s
  5417  }
  5418  
  5419  // SetSupportedLocales sets the SupportedLocales field's value.
  5420  func (s *BuiltinSlotTypeMetadata) SetSupportedLocales(v []*string) *BuiltinSlotTypeMetadata {
  5421  	s.SupportedLocales = v
  5422  	return s
  5423  }
  5424  
  5425  // Specifies a Lambda function that verifies requests to a bot or fulfills the
  5426  // user's request to a bot..
  5427  type CodeHook struct {
  5428  	_ struct{} `type:"structure"`
  5429  
  5430  	// The version of the request-response that you want Amazon Lex to use to invoke
  5431  	// your Lambda function. For more information, see using-lambda.
  5432  	//
  5433  	// MessageVersion is a required field
  5434  	MessageVersion *string `locationName:"messageVersion" min:"1" type:"string" required:"true"`
  5435  
  5436  	// The Amazon Resource Name (ARN) of the Lambda function.
  5437  	//
  5438  	// Uri is a required field
  5439  	Uri *string `locationName:"uri" min:"20" type:"string" required:"true"`
  5440  }
  5441  
  5442  // String returns the string representation.
  5443  //
  5444  // API parameter values that are decorated as "sensitive" in the API will not
  5445  // be included in the string output. The member name will be present, but the
  5446  // value will be replaced with "sensitive".
  5447  func (s CodeHook) String() string {
  5448  	return awsutil.Prettify(s)
  5449  }
  5450  
  5451  // GoString returns the string representation.
  5452  //
  5453  // API parameter values that are decorated as "sensitive" in the API will not
  5454  // be included in the string output. The member name will be present, but the
  5455  // value will be replaced with "sensitive".
  5456  func (s CodeHook) GoString() string {
  5457  	return s.String()
  5458  }
  5459  
  5460  // Validate inspects the fields of the type to determine if they are valid.
  5461  func (s *CodeHook) Validate() error {
  5462  	invalidParams := request.ErrInvalidParams{Context: "CodeHook"}
  5463  	if s.MessageVersion == nil {
  5464  		invalidParams.Add(request.NewErrParamRequired("MessageVersion"))
  5465  	}
  5466  	if s.MessageVersion != nil && len(*s.MessageVersion) < 1 {
  5467  		invalidParams.Add(request.NewErrParamMinLen("MessageVersion", 1))
  5468  	}
  5469  	if s.Uri == nil {
  5470  		invalidParams.Add(request.NewErrParamRequired("Uri"))
  5471  	}
  5472  	if s.Uri != nil && len(*s.Uri) < 20 {
  5473  		invalidParams.Add(request.NewErrParamMinLen("Uri", 20))
  5474  	}
  5475  
  5476  	if invalidParams.Len() > 0 {
  5477  		return invalidParams
  5478  	}
  5479  	return nil
  5480  }
  5481  
  5482  // SetMessageVersion sets the MessageVersion field's value.
  5483  func (s *CodeHook) SetMessageVersion(v string) *CodeHook {
  5484  	s.MessageVersion = &v
  5485  	return s
  5486  }
  5487  
  5488  // SetUri sets the Uri field's value.
  5489  func (s *CodeHook) SetUri(v string) *CodeHook {
  5490  	s.Uri = &v
  5491  	return s
  5492  }
  5493  
  5494  // There was a conflict processing the request. Try your request again.
  5495  type ConflictException struct {
  5496  	_            struct{}                  `type:"structure"`
  5497  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5498  
  5499  	Message_ *string `locationName:"message" type:"string"`
  5500  }
  5501  
  5502  // String returns the string representation.
  5503  //
  5504  // API parameter values that are decorated as "sensitive" in the API will not
  5505  // be included in the string output. The member name will be present, but the
  5506  // value will be replaced with "sensitive".
  5507  func (s ConflictException) String() string {
  5508  	return awsutil.Prettify(s)
  5509  }
  5510  
  5511  // GoString returns the string representation.
  5512  //
  5513  // API parameter values that are decorated as "sensitive" in the API will not
  5514  // be included in the string output. The member name will be present, but the
  5515  // value will be replaced with "sensitive".
  5516  func (s ConflictException) GoString() string {
  5517  	return s.String()
  5518  }
  5519  
  5520  func newErrorConflictException(v protocol.ResponseMetadata) error {
  5521  	return &ConflictException{
  5522  		RespMetadata: v,
  5523  	}
  5524  }
  5525  
  5526  // Code returns the exception type name.
  5527  func (s *ConflictException) Code() string {
  5528  	return "ConflictException"
  5529  }
  5530  
  5531  // Message returns the exception's message.
  5532  func (s *ConflictException) Message() string {
  5533  	if s.Message_ != nil {
  5534  		return *s.Message_
  5535  	}
  5536  	return ""
  5537  }
  5538  
  5539  // OrigErr always returns nil, satisfies awserr.Error interface.
  5540  func (s *ConflictException) OrigErr() error {
  5541  	return nil
  5542  }
  5543  
  5544  func (s *ConflictException) Error() string {
  5545  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5546  }
  5547  
  5548  // Status code returns the HTTP status code for the request's response error.
  5549  func (s *ConflictException) StatusCode() int {
  5550  	return s.RespMetadata.StatusCode
  5551  }
  5552  
  5553  // RequestID returns the service's response RequestID for request.
  5554  func (s *ConflictException) RequestID() string {
  5555  	return s.RespMetadata.RequestID
  5556  }
  5557  
  5558  // Provides the settings needed for conversation logs.
  5559  type ConversationLogsRequest struct {
  5560  	_ struct{} `type:"structure"`
  5561  
  5562  	// The Amazon Resource Name (ARN) of an IAM role with permission to write to
  5563  	// your CloudWatch Logs for text logs and your S3 bucket for audio logs. If
  5564  	// audio encryption is enabled, this role also provides access permission for
  5565  	// the AWS KMS key used for encrypting audio logs. For more information, see
  5566  	// Creating an IAM Role and Policy for Conversation Logs (https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html).
  5567  	//
  5568  	// IamRoleArn is a required field
  5569  	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string" required:"true"`
  5570  
  5571  	// The settings for your conversation logs. You can log the conversation text,
  5572  	// conversation audio, or both.
  5573  	//
  5574  	// LogSettings is a required field
  5575  	LogSettings []*LogSettingsRequest `locationName:"logSettings" type:"list" required:"true"`
  5576  }
  5577  
  5578  // String returns the string representation.
  5579  //
  5580  // API parameter values that are decorated as "sensitive" in the API will not
  5581  // be included in the string output. The member name will be present, but the
  5582  // value will be replaced with "sensitive".
  5583  func (s ConversationLogsRequest) String() string {
  5584  	return awsutil.Prettify(s)
  5585  }
  5586  
  5587  // GoString returns the string representation.
  5588  //
  5589  // API parameter values that are decorated as "sensitive" in the API will not
  5590  // be included in the string output. The member name will be present, but the
  5591  // value will be replaced with "sensitive".
  5592  func (s ConversationLogsRequest) GoString() string {
  5593  	return s.String()
  5594  }
  5595  
  5596  // Validate inspects the fields of the type to determine if they are valid.
  5597  func (s *ConversationLogsRequest) Validate() error {
  5598  	invalidParams := request.ErrInvalidParams{Context: "ConversationLogsRequest"}
  5599  	if s.IamRoleArn == nil {
  5600  		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
  5601  	}
  5602  	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
  5603  		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
  5604  	}
  5605  	if s.LogSettings == nil {
  5606  		invalidParams.Add(request.NewErrParamRequired("LogSettings"))
  5607  	}
  5608  	if s.LogSettings != nil {
  5609  		for i, v := range s.LogSettings {
  5610  			if v == nil {
  5611  				continue
  5612  			}
  5613  			if err := v.Validate(); err != nil {
  5614  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LogSettings", i), err.(request.ErrInvalidParams))
  5615  			}
  5616  		}
  5617  	}
  5618  
  5619  	if invalidParams.Len() > 0 {
  5620  		return invalidParams
  5621  	}
  5622  	return nil
  5623  }
  5624  
  5625  // SetIamRoleArn sets the IamRoleArn field's value.
  5626  func (s *ConversationLogsRequest) SetIamRoleArn(v string) *ConversationLogsRequest {
  5627  	s.IamRoleArn = &v
  5628  	return s
  5629  }
  5630  
  5631  // SetLogSettings sets the LogSettings field's value.
  5632  func (s *ConversationLogsRequest) SetLogSettings(v []*LogSettingsRequest) *ConversationLogsRequest {
  5633  	s.LogSettings = v
  5634  	return s
  5635  }
  5636  
  5637  // Contains information about conversation log settings.
  5638  type ConversationLogsResponse struct {
  5639  	_ struct{} `type:"structure"`
  5640  
  5641  	// The Amazon Resource Name (ARN) of the IAM role used to write your logs to
  5642  	// CloudWatch Logs or an S3 bucket.
  5643  	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
  5644  
  5645  	// The settings for your conversation logs. You can log text, audio, or both.
  5646  	LogSettings []*LogSettingsResponse `locationName:"logSettings" type:"list"`
  5647  }
  5648  
  5649  // String returns the string representation.
  5650  //
  5651  // API parameter values that are decorated as "sensitive" in the API will not
  5652  // be included in the string output. The member name will be present, but the
  5653  // value will be replaced with "sensitive".
  5654  func (s ConversationLogsResponse) String() string {
  5655  	return awsutil.Prettify(s)
  5656  }
  5657  
  5658  // GoString returns the string representation.
  5659  //
  5660  // API parameter values that are decorated as "sensitive" in the API will not
  5661  // be included in the string output. The member name will be present, but the
  5662  // value will be replaced with "sensitive".
  5663  func (s ConversationLogsResponse) GoString() string {
  5664  	return s.String()
  5665  }
  5666  
  5667  // SetIamRoleArn sets the IamRoleArn field's value.
  5668  func (s *ConversationLogsResponse) SetIamRoleArn(v string) *ConversationLogsResponse {
  5669  	s.IamRoleArn = &v
  5670  	return s
  5671  }
  5672  
  5673  // SetLogSettings sets the LogSettings field's value.
  5674  func (s *ConversationLogsResponse) SetLogSettings(v []*LogSettingsResponse) *ConversationLogsResponse {
  5675  	s.LogSettings = v
  5676  	return s
  5677  }
  5678  
  5679  type CreateBotVersionInput struct {
  5680  	_ struct{} `type:"structure"`
  5681  
  5682  	// Identifies a specific revision of the $LATEST version of the bot. If you
  5683  	// specify a checksum and the $LATEST version of the bot has a different checksum,
  5684  	// a PreconditionFailedException exception is returned and Amazon Lex doesn't
  5685  	// publish a new version. If you don't specify a checksum, Amazon Lex publishes
  5686  	// the $LATEST version.
  5687  	Checksum *string `locationName:"checksum" type:"string"`
  5688  
  5689  	// The name of the bot that you want to create a new version of. The name is
  5690  	// case sensitive.
  5691  	//
  5692  	// Name is a required field
  5693  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
  5694  }
  5695  
  5696  // String returns the string representation.
  5697  //
  5698  // API parameter values that are decorated as "sensitive" in the API will not
  5699  // be included in the string output. The member name will be present, but the
  5700  // value will be replaced with "sensitive".
  5701  func (s CreateBotVersionInput) String() string {
  5702  	return awsutil.Prettify(s)
  5703  }
  5704  
  5705  // GoString returns the string representation.
  5706  //
  5707  // API parameter values that are decorated as "sensitive" in the API will not
  5708  // be included in the string output. The member name will be present, but the
  5709  // value will be replaced with "sensitive".
  5710  func (s CreateBotVersionInput) GoString() string {
  5711  	return s.String()
  5712  }
  5713  
  5714  // Validate inspects the fields of the type to determine if they are valid.
  5715  func (s *CreateBotVersionInput) Validate() error {
  5716  	invalidParams := request.ErrInvalidParams{Context: "CreateBotVersionInput"}
  5717  	if s.Name == nil {
  5718  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5719  	}
  5720  	if s.Name != nil && len(*s.Name) < 2 {
  5721  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
  5722  	}
  5723  
  5724  	if invalidParams.Len() > 0 {
  5725  		return invalidParams
  5726  	}
  5727  	return nil
  5728  }
  5729  
  5730  // SetChecksum sets the Checksum field's value.
  5731  func (s *CreateBotVersionInput) SetChecksum(v string) *CreateBotVersionInput {
  5732  	s.Checksum = &v
  5733  	return s
  5734  }
  5735  
  5736  // SetName sets the Name field's value.
  5737  func (s *CreateBotVersionInput) SetName(v string) *CreateBotVersionInput {
  5738  	s.Name = &v
  5739  	return s
  5740  }
  5741  
  5742  type CreateBotVersionOutput struct {
  5743  	_ struct{} `type:"structure"`
  5744  
  5745  	// The message that Amazon Lex uses to cancel a conversation. For more information,
  5746  	// see PutBot.
  5747  	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
  5748  
  5749  	// Checksum identifying the version of the bot that was created.
  5750  	Checksum *string `locationName:"checksum" type:"string"`
  5751  
  5752  	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
  5753  	// you must specify whether your use of Amazon Lex is related to a website,
  5754  	// program, or other application that is directed or targeted, in whole or in
  5755  	// part, to children under age 13 and subject to the Children's Online Privacy
  5756  	// Protection Act (COPPA) by specifying true or false in the childDirected field.
  5757  	// By specifying true in the childDirected field, you confirm that your use
  5758  	// of Amazon Lex is related to a website, program, or other application that
  5759  	// is directed or targeted, in whole or in part, to children under age 13 and
  5760  	// subject to COPPA. By specifying false in the childDirected field, you confirm
  5761  	// that your use of Amazon Lex is not related to a website, program, or other
  5762  	// application that is directed or targeted, in whole or in part, to children
  5763  	// under age 13 and subject to COPPA. You may not specify a default value for
  5764  	// the childDirected field that does not accurately reflect whether your use
  5765  	// of Amazon Lex is related to a website, program, or other application that
  5766  	// is directed or targeted, in whole or in part, to children under age 13 and
  5767  	// subject to COPPA.
  5768  	//
  5769  	// If your use of Amazon Lex relates to a website, program, or other application
  5770  	// that is directed in whole or in part, to children under age 13, you must
  5771  	// obtain any required verifiable parental consent under COPPA. For information
  5772  	// regarding the use of Amazon Lex in connection with websites, programs, or
  5773  	// other applications that are directed or targeted, in whole or in part, to
  5774  	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
  5775  	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
  5776  
  5777  	// The message that Amazon Lex uses when it doesn't understand the user's request.
  5778  	// For more information, see PutBot.
  5779  	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
  5780  
  5781  	// The date when the bot version was created.
  5782  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  5783  
  5784  	// A description of the bot.
  5785  	Description *string `locationName:"description" type:"string"`
  5786  
  5787  	// Indicates whether utterances entered by the user should be sent to Amazon
  5788  	// Comprehend for sentiment analysis.
  5789  	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
  5790  
  5791  	// Indicates whether the bot uses accuracy improvements. true indicates that
  5792  	// the bot is using the improvements, otherwise, false.
  5793  	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
  5794  
  5795  	// If status is FAILED, Amazon Lex provides the reason that it failed to build
  5796  	// the bot.
  5797  	FailureReason *string `locationName:"failureReason" type:"string"`
  5798  
  5799  	// The maximum time in seconds that Amazon Lex retains the data gathered in
  5800  	// a conversation. For more information, see PutBot.
  5801  	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
  5802  
  5803  	// An array of Intent objects. For more information, see PutBot.
  5804  	Intents []*Intent `locationName:"intents" type:"list"`
  5805  
  5806  	// The date when the $LATEST version of this bot was updated.
  5807  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  5808  
  5809  	// Specifies the target locale for the bot.
  5810  	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
  5811  
  5812  	// The name of the bot.
  5813  	Name *string `locationName:"name" min:"2" type:"string"`
  5814  
  5815  	// When you send a request to create or update a bot, Amazon Lex sets the status
  5816  	// response element to BUILDING. After Amazon Lex builds the bot, it sets status
  5817  	// to READY. If Amazon Lex can't build the bot, it sets status to FAILED. Amazon
  5818  	// Lex returns the reason for the failure in the failureReason response element.
  5819  	Status *string `locationName:"status" type:"string" enum:"Status"`
  5820  
  5821  	// The version of the bot.
  5822  	Version *string `locationName:"version" min:"1" type:"string"`
  5823  
  5824  	// The Amazon Polly voice ID that Amazon Lex uses for voice interactions with
  5825  	// the user.
  5826  	VoiceId *string `locationName:"voiceId" type:"string"`
  5827  }
  5828  
  5829  // String returns the string representation.
  5830  //
  5831  // API parameter values that are decorated as "sensitive" in the API will not
  5832  // be included in the string output. The member name will be present, but the
  5833  // value will be replaced with "sensitive".
  5834  func (s CreateBotVersionOutput) String() string {
  5835  	return awsutil.Prettify(s)
  5836  }
  5837  
  5838  // GoString returns the string representation.
  5839  //
  5840  // API parameter values that are decorated as "sensitive" in the API will not
  5841  // be included in the string output. The member name will be present, but the
  5842  // value will be replaced with "sensitive".
  5843  func (s CreateBotVersionOutput) GoString() string {
  5844  	return s.String()
  5845  }
  5846  
  5847  // SetAbortStatement sets the AbortStatement field's value.
  5848  func (s *CreateBotVersionOutput) SetAbortStatement(v *Statement) *CreateBotVersionOutput {
  5849  	s.AbortStatement = v
  5850  	return s
  5851  }
  5852  
  5853  // SetChecksum sets the Checksum field's value.
  5854  func (s *CreateBotVersionOutput) SetChecksum(v string) *CreateBotVersionOutput {
  5855  	s.Checksum = &v
  5856  	return s
  5857  }
  5858  
  5859  // SetChildDirected sets the ChildDirected field's value.
  5860  func (s *CreateBotVersionOutput) SetChildDirected(v bool) *CreateBotVersionOutput {
  5861  	s.ChildDirected = &v
  5862  	return s
  5863  }
  5864  
  5865  // SetClarificationPrompt sets the ClarificationPrompt field's value.
  5866  func (s *CreateBotVersionOutput) SetClarificationPrompt(v *Prompt) *CreateBotVersionOutput {
  5867  	s.ClarificationPrompt = v
  5868  	return s
  5869  }
  5870  
  5871  // SetCreatedDate sets the CreatedDate field's value.
  5872  func (s *CreateBotVersionOutput) SetCreatedDate(v time.Time) *CreateBotVersionOutput {
  5873  	s.CreatedDate = &v
  5874  	return s
  5875  }
  5876  
  5877  // SetDescription sets the Description field's value.
  5878  func (s *CreateBotVersionOutput) SetDescription(v string) *CreateBotVersionOutput {
  5879  	s.Description = &v
  5880  	return s
  5881  }
  5882  
  5883  // SetDetectSentiment sets the DetectSentiment field's value.
  5884  func (s *CreateBotVersionOutput) SetDetectSentiment(v bool) *CreateBotVersionOutput {
  5885  	s.DetectSentiment = &v
  5886  	return s
  5887  }
  5888  
  5889  // SetEnableModelImprovements sets the EnableModelImprovements field's value.
  5890  func (s *CreateBotVersionOutput) SetEnableModelImprovements(v bool) *CreateBotVersionOutput {
  5891  	s.EnableModelImprovements = &v
  5892  	return s
  5893  }
  5894  
  5895  // SetFailureReason sets the FailureReason field's value.
  5896  func (s *CreateBotVersionOutput) SetFailureReason(v string) *CreateBotVersionOutput {
  5897  	s.FailureReason = &v
  5898  	return s
  5899  }
  5900  
  5901  // SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
  5902  func (s *CreateBotVersionOutput) SetIdleSessionTTLInSeconds(v int64) *CreateBotVersionOutput {
  5903  	s.IdleSessionTTLInSeconds = &v
  5904  	return s
  5905  }
  5906  
  5907  // SetIntents sets the Intents field's value.
  5908  func (s *CreateBotVersionOutput) SetIntents(v []*Intent) *CreateBotVersionOutput {
  5909  	s.Intents = v
  5910  	return s
  5911  }
  5912  
  5913  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  5914  func (s *CreateBotVersionOutput) SetLastUpdatedDate(v time.Time) *CreateBotVersionOutput {
  5915  	s.LastUpdatedDate = &v
  5916  	return s
  5917  }
  5918  
  5919  // SetLocale sets the Locale field's value.
  5920  func (s *CreateBotVersionOutput) SetLocale(v string) *CreateBotVersionOutput {
  5921  	s.Locale = &v
  5922  	return s
  5923  }
  5924  
  5925  // SetName sets the Name field's value.
  5926  func (s *CreateBotVersionOutput) SetName(v string) *CreateBotVersionOutput {
  5927  	s.Name = &v
  5928  	return s
  5929  }
  5930  
  5931  // SetStatus sets the Status field's value.
  5932  func (s *CreateBotVersionOutput) SetStatus(v string) *CreateBotVersionOutput {
  5933  	s.Status = &v
  5934  	return s
  5935  }
  5936  
  5937  // SetVersion sets the Version field's value.
  5938  func (s *CreateBotVersionOutput) SetVersion(v string) *CreateBotVersionOutput {
  5939  	s.Version = &v
  5940  	return s
  5941  }
  5942  
  5943  // SetVoiceId sets the VoiceId field's value.
  5944  func (s *CreateBotVersionOutput) SetVoiceId(v string) *CreateBotVersionOutput {
  5945  	s.VoiceId = &v
  5946  	return s
  5947  }
  5948  
  5949  type CreateIntentVersionInput struct {
  5950  	_ struct{} `type:"structure"`
  5951  
  5952  	// Checksum of the $LATEST version of the intent that should be used to create
  5953  	// the new version. If you specify a checksum and the $LATEST version of the
  5954  	// intent has a different checksum, Amazon Lex returns a PreconditionFailedException
  5955  	// exception and doesn't publish a new version. If you don't specify a checksum,
  5956  	// Amazon Lex publishes the $LATEST version.
  5957  	Checksum *string `locationName:"checksum" type:"string"`
  5958  
  5959  	// The name of the intent that you want to create a new version of. The name
  5960  	// is case sensitive.
  5961  	//
  5962  	// Name is a required field
  5963  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  5964  }
  5965  
  5966  // String returns the string representation.
  5967  //
  5968  // API parameter values that are decorated as "sensitive" in the API will not
  5969  // be included in the string output. The member name will be present, but the
  5970  // value will be replaced with "sensitive".
  5971  func (s CreateIntentVersionInput) String() string {
  5972  	return awsutil.Prettify(s)
  5973  }
  5974  
  5975  // GoString returns the string representation.
  5976  //
  5977  // API parameter values that are decorated as "sensitive" in the API will not
  5978  // be included in the string output. The member name will be present, but the
  5979  // value will be replaced with "sensitive".
  5980  func (s CreateIntentVersionInput) GoString() string {
  5981  	return s.String()
  5982  }
  5983  
  5984  // Validate inspects the fields of the type to determine if they are valid.
  5985  func (s *CreateIntentVersionInput) Validate() error {
  5986  	invalidParams := request.ErrInvalidParams{Context: "CreateIntentVersionInput"}
  5987  	if s.Name == nil {
  5988  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5989  	}
  5990  	if s.Name != nil && len(*s.Name) < 1 {
  5991  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5992  	}
  5993  
  5994  	if invalidParams.Len() > 0 {
  5995  		return invalidParams
  5996  	}
  5997  	return nil
  5998  }
  5999  
  6000  // SetChecksum sets the Checksum field's value.
  6001  func (s *CreateIntentVersionInput) SetChecksum(v string) *CreateIntentVersionInput {
  6002  	s.Checksum = &v
  6003  	return s
  6004  }
  6005  
  6006  // SetName sets the Name field's value.
  6007  func (s *CreateIntentVersionInput) SetName(v string) *CreateIntentVersionInput {
  6008  	s.Name = &v
  6009  	return s
  6010  }
  6011  
  6012  type CreateIntentVersionOutput struct {
  6013  	_ struct{} `type:"structure"`
  6014  
  6015  	// Checksum of the intent version created.
  6016  	Checksum *string `locationName:"checksum" type:"string"`
  6017  
  6018  	// After the Lambda function specified in the fulfillmentActivity field fulfills
  6019  	// the intent, Amazon Lex conveys this statement to the user.
  6020  	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
  6021  
  6022  	// If defined, the prompt that Amazon Lex uses to confirm the user's intent
  6023  	// before fulfilling it.
  6024  	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
  6025  
  6026  	// The date that the intent was created.
  6027  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  6028  
  6029  	// A description of the intent.
  6030  	Description *string `locationName:"description" type:"string"`
  6031  
  6032  	// If defined, Amazon Lex invokes this Lambda function for each user input.
  6033  	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
  6034  
  6035  	// If defined, Amazon Lex uses this prompt to solicit additional user activity
  6036  	// after the intent is fulfilled.
  6037  	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
  6038  
  6039  	// Describes how the intent is fulfilled.
  6040  	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
  6041  
  6042  	// An array of InputContext objects that lists the contexts that must be active
  6043  	// for Amazon Lex to choose the intent in a conversation with the user.
  6044  	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
  6045  
  6046  	// Configuration information, if any, for connecting an Amazon Kendra index
  6047  	// with the AMAZON.KendraSearchIntent intent.
  6048  	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
  6049  
  6050  	// The date that the intent was updated.
  6051  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  6052  
  6053  	// The name of the intent.
  6054  	Name *string `locationName:"name" min:"1" type:"string"`
  6055  
  6056  	// An array of OutputContext objects that lists the contexts that the intent
  6057  	// activates when the intent is fulfilled.
  6058  	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
  6059  
  6060  	// A unique identifier for a built-in intent.
  6061  	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
  6062  
  6063  	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
  6064  	// Lex responds with this statement to acknowledge that the intent was canceled.
  6065  	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
  6066  
  6067  	// An array of sample utterances configured for the intent.
  6068  	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
  6069  
  6070  	// An array of slot types that defines the information required to fulfill the
  6071  	// intent.
  6072  	Slots []*Slot `locationName:"slots" type:"list"`
  6073  
  6074  	// The version number assigned to the new version of the intent.
  6075  	Version *string `locationName:"version" min:"1" type:"string"`
  6076  }
  6077  
  6078  // String returns the string representation.
  6079  //
  6080  // API parameter values that are decorated as "sensitive" in the API will not
  6081  // be included in the string output. The member name will be present, but the
  6082  // value will be replaced with "sensitive".
  6083  func (s CreateIntentVersionOutput) String() string {
  6084  	return awsutil.Prettify(s)
  6085  }
  6086  
  6087  // GoString returns the string representation.
  6088  //
  6089  // API parameter values that are decorated as "sensitive" in the API will not
  6090  // be included in the string output. The member name will be present, but the
  6091  // value will be replaced with "sensitive".
  6092  func (s CreateIntentVersionOutput) GoString() string {
  6093  	return s.String()
  6094  }
  6095  
  6096  // SetChecksum sets the Checksum field's value.
  6097  func (s *CreateIntentVersionOutput) SetChecksum(v string) *CreateIntentVersionOutput {
  6098  	s.Checksum = &v
  6099  	return s
  6100  }
  6101  
  6102  // SetConclusionStatement sets the ConclusionStatement field's value.
  6103  func (s *CreateIntentVersionOutput) SetConclusionStatement(v *Statement) *CreateIntentVersionOutput {
  6104  	s.ConclusionStatement = v
  6105  	return s
  6106  }
  6107  
  6108  // SetConfirmationPrompt sets the ConfirmationPrompt field's value.
  6109  func (s *CreateIntentVersionOutput) SetConfirmationPrompt(v *Prompt) *CreateIntentVersionOutput {
  6110  	s.ConfirmationPrompt = v
  6111  	return s
  6112  }
  6113  
  6114  // SetCreatedDate sets the CreatedDate field's value.
  6115  func (s *CreateIntentVersionOutput) SetCreatedDate(v time.Time) *CreateIntentVersionOutput {
  6116  	s.CreatedDate = &v
  6117  	return s
  6118  }
  6119  
  6120  // SetDescription sets the Description field's value.
  6121  func (s *CreateIntentVersionOutput) SetDescription(v string) *CreateIntentVersionOutput {
  6122  	s.Description = &v
  6123  	return s
  6124  }
  6125  
  6126  // SetDialogCodeHook sets the DialogCodeHook field's value.
  6127  func (s *CreateIntentVersionOutput) SetDialogCodeHook(v *CodeHook) *CreateIntentVersionOutput {
  6128  	s.DialogCodeHook = v
  6129  	return s
  6130  }
  6131  
  6132  // SetFollowUpPrompt sets the FollowUpPrompt field's value.
  6133  func (s *CreateIntentVersionOutput) SetFollowUpPrompt(v *FollowUpPrompt) *CreateIntentVersionOutput {
  6134  	s.FollowUpPrompt = v
  6135  	return s
  6136  }
  6137  
  6138  // SetFulfillmentActivity sets the FulfillmentActivity field's value.
  6139  func (s *CreateIntentVersionOutput) SetFulfillmentActivity(v *FulfillmentActivity) *CreateIntentVersionOutput {
  6140  	s.FulfillmentActivity = v
  6141  	return s
  6142  }
  6143  
  6144  // SetInputContexts sets the InputContexts field's value.
  6145  func (s *CreateIntentVersionOutput) SetInputContexts(v []*InputContext) *CreateIntentVersionOutput {
  6146  	s.InputContexts = v
  6147  	return s
  6148  }
  6149  
  6150  // SetKendraConfiguration sets the KendraConfiguration field's value.
  6151  func (s *CreateIntentVersionOutput) SetKendraConfiguration(v *KendraConfiguration) *CreateIntentVersionOutput {
  6152  	s.KendraConfiguration = v
  6153  	return s
  6154  }
  6155  
  6156  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  6157  func (s *CreateIntentVersionOutput) SetLastUpdatedDate(v time.Time) *CreateIntentVersionOutput {
  6158  	s.LastUpdatedDate = &v
  6159  	return s
  6160  }
  6161  
  6162  // SetName sets the Name field's value.
  6163  func (s *CreateIntentVersionOutput) SetName(v string) *CreateIntentVersionOutput {
  6164  	s.Name = &v
  6165  	return s
  6166  }
  6167  
  6168  // SetOutputContexts sets the OutputContexts field's value.
  6169  func (s *CreateIntentVersionOutput) SetOutputContexts(v []*OutputContext) *CreateIntentVersionOutput {
  6170  	s.OutputContexts = v
  6171  	return s
  6172  }
  6173  
  6174  // SetParentIntentSignature sets the ParentIntentSignature field's value.
  6175  func (s *CreateIntentVersionOutput) SetParentIntentSignature(v string) *CreateIntentVersionOutput {
  6176  	s.ParentIntentSignature = &v
  6177  	return s
  6178  }
  6179  
  6180  // SetRejectionStatement sets the RejectionStatement field's value.
  6181  func (s *CreateIntentVersionOutput) SetRejectionStatement(v *Statement) *CreateIntentVersionOutput {
  6182  	s.RejectionStatement = v
  6183  	return s
  6184  }
  6185  
  6186  // SetSampleUtterances sets the SampleUtterances field's value.
  6187  func (s *CreateIntentVersionOutput) SetSampleUtterances(v []*string) *CreateIntentVersionOutput {
  6188  	s.SampleUtterances = v
  6189  	return s
  6190  }
  6191  
  6192  // SetSlots sets the Slots field's value.
  6193  func (s *CreateIntentVersionOutput) SetSlots(v []*Slot) *CreateIntentVersionOutput {
  6194  	s.Slots = v
  6195  	return s
  6196  }
  6197  
  6198  // SetVersion sets the Version field's value.
  6199  func (s *CreateIntentVersionOutput) SetVersion(v string) *CreateIntentVersionOutput {
  6200  	s.Version = &v
  6201  	return s
  6202  }
  6203  
  6204  type CreateSlotTypeVersionInput struct {
  6205  	_ struct{} `type:"structure"`
  6206  
  6207  	// Checksum for the $LATEST version of the slot type that you want to publish.
  6208  	// If you specify a checksum and the $LATEST version of the slot type has a
  6209  	// different checksum, Amazon Lex returns a PreconditionFailedException exception
  6210  	// and doesn't publish the new version. If you don't specify a checksum, Amazon
  6211  	// Lex publishes the $LATEST version.
  6212  	Checksum *string `locationName:"checksum" type:"string"`
  6213  
  6214  	// The name of the slot type that you want to create a new version for. The
  6215  	// name is case sensitive.
  6216  	//
  6217  	// Name is a required field
  6218  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6219  }
  6220  
  6221  // String returns the string representation.
  6222  //
  6223  // API parameter values that are decorated as "sensitive" in the API will not
  6224  // be included in the string output. The member name will be present, but the
  6225  // value will be replaced with "sensitive".
  6226  func (s CreateSlotTypeVersionInput) String() string {
  6227  	return awsutil.Prettify(s)
  6228  }
  6229  
  6230  // GoString returns the string representation.
  6231  //
  6232  // API parameter values that are decorated as "sensitive" in the API will not
  6233  // be included in the string output. The member name will be present, but the
  6234  // value will be replaced with "sensitive".
  6235  func (s CreateSlotTypeVersionInput) GoString() string {
  6236  	return s.String()
  6237  }
  6238  
  6239  // Validate inspects the fields of the type to determine if they are valid.
  6240  func (s *CreateSlotTypeVersionInput) Validate() error {
  6241  	invalidParams := request.ErrInvalidParams{Context: "CreateSlotTypeVersionInput"}
  6242  	if s.Name == nil {
  6243  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6244  	}
  6245  	if s.Name != nil && len(*s.Name) < 1 {
  6246  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6247  	}
  6248  
  6249  	if invalidParams.Len() > 0 {
  6250  		return invalidParams
  6251  	}
  6252  	return nil
  6253  }
  6254  
  6255  // SetChecksum sets the Checksum field's value.
  6256  func (s *CreateSlotTypeVersionInput) SetChecksum(v string) *CreateSlotTypeVersionInput {
  6257  	s.Checksum = &v
  6258  	return s
  6259  }
  6260  
  6261  // SetName sets the Name field's value.
  6262  func (s *CreateSlotTypeVersionInput) SetName(v string) *CreateSlotTypeVersionInput {
  6263  	s.Name = &v
  6264  	return s
  6265  }
  6266  
  6267  type CreateSlotTypeVersionOutput struct {
  6268  	_ struct{} `type:"structure"`
  6269  
  6270  	// Checksum of the $LATEST version of the slot type.
  6271  	Checksum *string `locationName:"checksum" type:"string"`
  6272  
  6273  	// The date that the slot type was created.
  6274  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  6275  
  6276  	// A description of the slot type.
  6277  	Description *string `locationName:"description" type:"string"`
  6278  
  6279  	// A list of EnumerationValue objects that defines the values that the slot
  6280  	// type can take.
  6281  	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
  6282  
  6283  	// The date that the slot type was updated. When you create a resource, the
  6284  	// creation date and last update date are the same.
  6285  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  6286  
  6287  	// The name of the slot type.
  6288  	Name *string `locationName:"name" min:"1" type:"string"`
  6289  
  6290  	// The built-in slot type used a the parent of the slot type.
  6291  	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
  6292  
  6293  	// Configuration information that extends the parent built-in slot type.
  6294  	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
  6295  
  6296  	// The strategy that Amazon Lex uses to determine the value of the slot. For
  6297  	// more information, see PutSlotType.
  6298  	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
  6299  
  6300  	// The version assigned to the new slot type version.
  6301  	Version *string `locationName:"version" min:"1" type:"string"`
  6302  }
  6303  
  6304  // String returns the string representation.
  6305  //
  6306  // API parameter values that are decorated as "sensitive" in the API will not
  6307  // be included in the string output. The member name will be present, but the
  6308  // value will be replaced with "sensitive".
  6309  func (s CreateSlotTypeVersionOutput) String() string {
  6310  	return awsutil.Prettify(s)
  6311  }
  6312  
  6313  // GoString returns the string representation.
  6314  //
  6315  // API parameter values that are decorated as "sensitive" in the API will not
  6316  // be included in the string output. The member name will be present, but the
  6317  // value will be replaced with "sensitive".
  6318  func (s CreateSlotTypeVersionOutput) GoString() string {
  6319  	return s.String()
  6320  }
  6321  
  6322  // SetChecksum sets the Checksum field's value.
  6323  func (s *CreateSlotTypeVersionOutput) SetChecksum(v string) *CreateSlotTypeVersionOutput {
  6324  	s.Checksum = &v
  6325  	return s
  6326  }
  6327  
  6328  // SetCreatedDate sets the CreatedDate field's value.
  6329  func (s *CreateSlotTypeVersionOutput) SetCreatedDate(v time.Time) *CreateSlotTypeVersionOutput {
  6330  	s.CreatedDate = &v
  6331  	return s
  6332  }
  6333  
  6334  // SetDescription sets the Description field's value.
  6335  func (s *CreateSlotTypeVersionOutput) SetDescription(v string) *CreateSlotTypeVersionOutput {
  6336  	s.Description = &v
  6337  	return s
  6338  }
  6339  
  6340  // SetEnumerationValues sets the EnumerationValues field's value.
  6341  func (s *CreateSlotTypeVersionOutput) SetEnumerationValues(v []*EnumerationValue) *CreateSlotTypeVersionOutput {
  6342  	s.EnumerationValues = v
  6343  	return s
  6344  }
  6345  
  6346  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  6347  func (s *CreateSlotTypeVersionOutput) SetLastUpdatedDate(v time.Time) *CreateSlotTypeVersionOutput {
  6348  	s.LastUpdatedDate = &v
  6349  	return s
  6350  }
  6351  
  6352  // SetName sets the Name field's value.
  6353  func (s *CreateSlotTypeVersionOutput) SetName(v string) *CreateSlotTypeVersionOutput {
  6354  	s.Name = &v
  6355  	return s
  6356  }
  6357  
  6358  // SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
  6359  func (s *CreateSlotTypeVersionOutput) SetParentSlotTypeSignature(v string) *CreateSlotTypeVersionOutput {
  6360  	s.ParentSlotTypeSignature = &v
  6361  	return s
  6362  }
  6363  
  6364  // SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
  6365  func (s *CreateSlotTypeVersionOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *CreateSlotTypeVersionOutput {
  6366  	s.SlotTypeConfigurations = v
  6367  	return s
  6368  }
  6369  
  6370  // SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
  6371  func (s *CreateSlotTypeVersionOutput) SetValueSelectionStrategy(v string) *CreateSlotTypeVersionOutput {
  6372  	s.ValueSelectionStrategy = &v
  6373  	return s
  6374  }
  6375  
  6376  // SetVersion sets the Version field's value.
  6377  func (s *CreateSlotTypeVersionOutput) SetVersion(v string) *CreateSlotTypeVersionOutput {
  6378  	s.Version = &v
  6379  	return s
  6380  }
  6381  
  6382  type DeleteBotAliasInput struct {
  6383  	_ struct{} `type:"structure" nopayload:"true"`
  6384  
  6385  	// The name of the bot that the alias points to.
  6386  	//
  6387  	// BotName is a required field
  6388  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  6389  
  6390  	// The name of the alias to delete. The name is case sensitive.
  6391  	//
  6392  	// Name is a required field
  6393  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6394  }
  6395  
  6396  // String returns the string representation.
  6397  //
  6398  // API parameter values that are decorated as "sensitive" in the API will not
  6399  // be included in the string output. The member name will be present, but the
  6400  // value will be replaced with "sensitive".
  6401  func (s DeleteBotAliasInput) String() string {
  6402  	return awsutil.Prettify(s)
  6403  }
  6404  
  6405  // GoString returns the string representation.
  6406  //
  6407  // API parameter values that are decorated as "sensitive" in the API will not
  6408  // be included in the string output. The member name will be present, but the
  6409  // value will be replaced with "sensitive".
  6410  func (s DeleteBotAliasInput) GoString() string {
  6411  	return s.String()
  6412  }
  6413  
  6414  // Validate inspects the fields of the type to determine if they are valid.
  6415  func (s *DeleteBotAliasInput) Validate() error {
  6416  	invalidParams := request.ErrInvalidParams{Context: "DeleteBotAliasInput"}
  6417  	if s.BotName == nil {
  6418  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  6419  	}
  6420  	if s.BotName != nil && len(*s.BotName) < 2 {
  6421  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  6422  	}
  6423  	if s.Name == nil {
  6424  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6425  	}
  6426  	if s.Name != nil && len(*s.Name) < 1 {
  6427  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6428  	}
  6429  
  6430  	if invalidParams.Len() > 0 {
  6431  		return invalidParams
  6432  	}
  6433  	return nil
  6434  }
  6435  
  6436  // SetBotName sets the BotName field's value.
  6437  func (s *DeleteBotAliasInput) SetBotName(v string) *DeleteBotAliasInput {
  6438  	s.BotName = &v
  6439  	return s
  6440  }
  6441  
  6442  // SetName sets the Name field's value.
  6443  func (s *DeleteBotAliasInput) SetName(v string) *DeleteBotAliasInput {
  6444  	s.Name = &v
  6445  	return s
  6446  }
  6447  
  6448  type DeleteBotAliasOutput struct {
  6449  	_ struct{} `type:"structure" nopayload:"true"`
  6450  }
  6451  
  6452  // String returns the string representation.
  6453  //
  6454  // API parameter values that are decorated as "sensitive" in the API will not
  6455  // be included in the string output. The member name will be present, but the
  6456  // value will be replaced with "sensitive".
  6457  func (s DeleteBotAliasOutput) String() string {
  6458  	return awsutil.Prettify(s)
  6459  }
  6460  
  6461  // GoString returns the string representation.
  6462  //
  6463  // API parameter values that are decorated as "sensitive" in the API will not
  6464  // be included in the string output. The member name will be present, but the
  6465  // value will be replaced with "sensitive".
  6466  func (s DeleteBotAliasOutput) GoString() string {
  6467  	return s.String()
  6468  }
  6469  
  6470  type DeleteBotChannelAssociationInput struct {
  6471  	_ struct{} `type:"structure" nopayload:"true"`
  6472  
  6473  	// An alias that points to the specific version of the Amazon Lex bot to which
  6474  	// this association is being made.
  6475  	//
  6476  	// BotAlias is a required field
  6477  	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
  6478  
  6479  	// The name of the Amazon Lex bot.
  6480  	//
  6481  	// BotName is a required field
  6482  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  6483  
  6484  	// The name of the association. The name is case sensitive.
  6485  	//
  6486  	// Name is a required field
  6487  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6488  }
  6489  
  6490  // String returns the string representation.
  6491  //
  6492  // API parameter values that are decorated as "sensitive" in the API will not
  6493  // be included in the string output. The member name will be present, but the
  6494  // value will be replaced with "sensitive".
  6495  func (s DeleteBotChannelAssociationInput) String() string {
  6496  	return awsutil.Prettify(s)
  6497  }
  6498  
  6499  // GoString returns the string representation.
  6500  //
  6501  // API parameter values that are decorated as "sensitive" in the API will not
  6502  // be included in the string output. The member name will be present, but the
  6503  // value will be replaced with "sensitive".
  6504  func (s DeleteBotChannelAssociationInput) GoString() string {
  6505  	return s.String()
  6506  }
  6507  
  6508  // Validate inspects the fields of the type to determine if they are valid.
  6509  func (s *DeleteBotChannelAssociationInput) Validate() error {
  6510  	invalidParams := request.ErrInvalidParams{Context: "DeleteBotChannelAssociationInput"}
  6511  	if s.BotAlias == nil {
  6512  		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
  6513  	}
  6514  	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
  6515  		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
  6516  	}
  6517  	if s.BotName == nil {
  6518  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  6519  	}
  6520  	if s.BotName != nil && len(*s.BotName) < 2 {
  6521  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  6522  	}
  6523  	if s.Name == nil {
  6524  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6525  	}
  6526  	if s.Name != nil && len(*s.Name) < 1 {
  6527  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6528  	}
  6529  
  6530  	if invalidParams.Len() > 0 {
  6531  		return invalidParams
  6532  	}
  6533  	return nil
  6534  }
  6535  
  6536  // SetBotAlias sets the BotAlias field's value.
  6537  func (s *DeleteBotChannelAssociationInput) SetBotAlias(v string) *DeleteBotChannelAssociationInput {
  6538  	s.BotAlias = &v
  6539  	return s
  6540  }
  6541  
  6542  // SetBotName sets the BotName field's value.
  6543  func (s *DeleteBotChannelAssociationInput) SetBotName(v string) *DeleteBotChannelAssociationInput {
  6544  	s.BotName = &v
  6545  	return s
  6546  }
  6547  
  6548  // SetName sets the Name field's value.
  6549  func (s *DeleteBotChannelAssociationInput) SetName(v string) *DeleteBotChannelAssociationInput {
  6550  	s.Name = &v
  6551  	return s
  6552  }
  6553  
  6554  type DeleteBotChannelAssociationOutput struct {
  6555  	_ struct{} `type:"structure" nopayload:"true"`
  6556  }
  6557  
  6558  // String returns the string representation.
  6559  //
  6560  // API parameter values that are decorated as "sensitive" in the API will not
  6561  // be included in the string output. The member name will be present, but the
  6562  // value will be replaced with "sensitive".
  6563  func (s DeleteBotChannelAssociationOutput) String() string {
  6564  	return awsutil.Prettify(s)
  6565  }
  6566  
  6567  // GoString returns the string representation.
  6568  //
  6569  // API parameter values that are decorated as "sensitive" in the API will not
  6570  // be included in the string output. The member name will be present, but the
  6571  // value will be replaced with "sensitive".
  6572  func (s DeleteBotChannelAssociationOutput) GoString() string {
  6573  	return s.String()
  6574  }
  6575  
  6576  type DeleteBotInput struct {
  6577  	_ struct{} `type:"structure" nopayload:"true"`
  6578  
  6579  	// The name of the bot. The name is case sensitive.
  6580  	//
  6581  	// Name is a required field
  6582  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
  6583  }
  6584  
  6585  // String returns the string representation.
  6586  //
  6587  // API parameter values that are decorated as "sensitive" in the API will not
  6588  // be included in the string output. The member name will be present, but the
  6589  // value will be replaced with "sensitive".
  6590  func (s DeleteBotInput) String() string {
  6591  	return awsutil.Prettify(s)
  6592  }
  6593  
  6594  // GoString returns the string representation.
  6595  //
  6596  // API parameter values that are decorated as "sensitive" in the API will not
  6597  // be included in the string output. The member name will be present, but the
  6598  // value will be replaced with "sensitive".
  6599  func (s DeleteBotInput) GoString() string {
  6600  	return s.String()
  6601  }
  6602  
  6603  // Validate inspects the fields of the type to determine if they are valid.
  6604  func (s *DeleteBotInput) Validate() error {
  6605  	invalidParams := request.ErrInvalidParams{Context: "DeleteBotInput"}
  6606  	if s.Name == nil {
  6607  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6608  	}
  6609  	if s.Name != nil && len(*s.Name) < 2 {
  6610  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
  6611  	}
  6612  
  6613  	if invalidParams.Len() > 0 {
  6614  		return invalidParams
  6615  	}
  6616  	return nil
  6617  }
  6618  
  6619  // SetName sets the Name field's value.
  6620  func (s *DeleteBotInput) SetName(v string) *DeleteBotInput {
  6621  	s.Name = &v
  6622  	return s
  6623  }
  6624  
  6625  type DeleteBotOutput struct {
  6626  	_ struct{} `type:"structure" nopayload:"true"`
  6627  }
  6628  
  6629  // String returns the string representation.
  6630  //
  6631  // API parameter values that are decorated as "sensitive" in the API will not
  6632  // be included in the string output. The member name will be present, but the
  6633  // value will be replaced with "sensitive".
  6634  func (s DeleteBotOutput) String() string {
  6635  	return awsutil.Prettify(s)
  6636  }
  6637  
  6638  // GoString returns the string representation.
  6639  //
  6640  // API parameter values that are decorated as "sensitive" in the API will not
  6641  // be included in the string output. The member name will be present, but the
  6642  // value will be replaced with "sensitive".
  6643  func (s DeleteBotOutput) GoString() string {
  6644  	return s.String()
  6645  }
  6646  
  6647  type DeleteBotVersionInput struct {
  6648  	_ struct{} `type:"structure" nopayload:"true"`
  6649  
  6650  	// The name of the bot.
  6651  	//
  6652  	// Name is a required field
  6653  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
  6654  
  6655  	// The version of the bot to delete. You cannot delete the $LATEST version of
  6656  	// the bot. To delete the $LATEST version, use the DeleteBot operation.
  6657  	//
  6658  	// Version is a required field
  6659  	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
  6660  }
  6661  
  6662  // String returns the string representation.
  6663  //
  6664  // API parameter values that are decorated as "sensitive" in the API will not
  6665  // be included in the string output. The member name will be present, but the
  6666  // value will be replaced with "sensitive".
  6667  func (s DeleteBotVersionInput) String() string {
  6668  	return awsutil.Prettify(s)
  6669  }
  6670  
  6671  // GoString returns the string representation.
  6672  //
  6673  // API parameter values that are decorated as "sensitive" in the API will not
  6674  // be included in the string output. The member name will be present, but the
  6675  // value will be replaced with "sensitive".
  6676  func (s DeleteBotVersionInput) GoString() string {
  6677  	return s.String()
  6678  }
  6679  
  6680  // Validate inspects the fields of the type to determine if they are valid.
  6681  func (s *DeleteBotVersionInput) Validate() error {
  6682  	invalidParams := request.ErrInvalidParams{Context: "DeleteBotVersionInput"}
  6683  	if s.Name == nil {
  6684  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6685  	}
  6686  	if s.Name != nil && len(*s.Name) < 2 {
  6687  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
  6688  	}
  6689  	if s.Version == nil {
  6690  		invalidParams.Add(request.NewErrParamRequired("Version"))
  6691  	}
  6692  	if s.Version != nil && len(*s.Version) < 1 {
  6693  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
  6694  	}
  6695  
  6696  	if invalidParams.Len() > 0 {
  6697  		return invalidParams
  6698  	}
  6699  	return nil
  6700  }
  6701  
  6702  // SetName sets the Name field's value.
  6703  func (s *DeleteBotVersionInput) SetName(v string) *DeleteBotVersionInput {
  6704  	s.Name = &v
  6705  	return s
  6706  }
  6707  
  6708  // SetVersion sets the Version field's value.
  6709  func (s *DeleteBotVersionInput) SetVersion(v string) *DeleteBotVersionInput {
  6710  	s.Version = &v
  6711  	return s
  6712  }
  6713  
  6714  type DeleteBotVersionOutput struct {
  6715  	_ struct{} `type:"structure" nopayload:"true"`
  6716  }
  6717  
  6718  // String returns the string representation.
  6719  //
  6720  // API parameter values that are decorated as "sensitive" in the API will not
  6721  // be included in the string output. The member name will be present, but the
  6722  // value will be replaced with "sensitive".
  6723  func (s DeleteBotVersionOutput) String() string {
  6724  	return awsutil.Prettify(s)
  6725  }
  6726  
  6727  // GoString returns the string representation.
  6728  //
  6729  // API parameter values that are decorated as "sensitive" in the API will not
  6730  // be included in the string output. The member name will be present, but the
  6731  // value will be replaced with "sensitive".
  6732  func (s DeleteBotVersionOutput) GoString() string {
  6733  	return s.String()
  6734  }
  6735  
  6736  type DeleteIntentInput struct {
  6737  	_ struct{} `type:"structure" nopayload:"true"`
  6738  
  6739  	// The name of the intent. The name is case sensitive.
  6740  	//
  6741  	// Name is a required field
  6742  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6743  }
  6744  
  6745  // String returns the string representation.
  6746  //
  6747  // API parameter values that are decorated as "sensitive" in the API will not
  6748  // be included in the string output. The member name will be present, but the
  6749  // value will be replaced with "sensitive".
  6750  func (s DeleteIntentInput) String() string {
  6751  	return awsutil.Prettify(s)
  6752  }
  6753  
  6754  // GoString returns the string representation.
  6755  //
  6756  // API parameter values that are decorated as "sensitive" in the API will not
  6757  // be included in the string output. The member name will be present, but the
  6758  // value will be replaced with "sensitive".
  6759  func (s DeleteIntentInput) GoString() string {
  6760  	return s.String()
  6761  }
  6762  
  6763  // Validate inspects the fields of the type to determine if they are valid.
  6764  func (s *DeleteIntentInput) Validate() error {
  6765  	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentInput"}
  6766  	if s.Name == nil {
  6767  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6768  	}
  6769  	if s.Name != nil && len(*s.Name) < 1 {
  6770  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6771  	}
  6772  
  6773  	if invalidParams.Len() > 0 {
  6774  		return invalidParams
  6775  	}
  6776  	return nil
  6777  }
  6778  
  6779  // SetName sets the Name field's value.
  6780  func (s *DeleteIntentInput) SetName(v string) *DeleteIntentInput {
  6781  	s.Name = &v
  6782  	return s
  6783  }
  6784  
  6785  type DeleteIntentOutput struct {
  6786  	_ struct{} `type:"structure" nopayload:"true"`
  6787  }
  6788  
  6789  // String returns the string representation.
  6790  //
  6791  // API parameter values that are decorated as "sensitive" in the API will not
  6792  // be included in the string output. The member name will be present, but the
  6793  // value will be replaced with "sensitive".
  6794  func (s DeleteIntentOutput) String() string {
  6795  	return awsutil.Prettify(s)
  6796  }
  6797  
  6798  // GoString returns the string representation.
  6799  //
  6800  // API parameter values that are decorated as "sensitive" in the API will not
  6801  // be included in the string output. The member name will be present, but the
  6802  // value will be replaced with "sensitive".
  6803  func (s DeleteIntentOutput) GoString() string {
  6804  	return s.String()
  6805  }
  6806  
  6807  type DeleteIntentVersionInput struct {
  6808  	_ struct{} `type:"structure" nopayload:"true"`
  6809  
  6810  	// The name of the intent.
  6811  	//
  6812  	// Name is a required field
  6813  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6814  
  6815  	// The version of the intent to delete. You cannot delete the $LATEST version
  6816  	// of the intent. To delete the $LATEST version, use the DeleteIntent operation.
  6817  	//
  6818  	// Version is a required field
  6819  	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
  6820  }
  6821  
  6822  // String returns the string representation.
  6823  //
  6824  // API parameter values that are decorated as "sensitive" in the API will not
  6825  // be included in the string output. The member name will be present, but the
  6826  // value will be replaced with "sensitive".
  6827  func (s DeleteIntentVersionInput) String() string {
  6828  	return awsutil.Prettify(s)
  6829  }
  6830  
  6831  // GoString returns the string representation.
  6832  //
  6833  // API parameter values that are decorated as "sensitive" in the API will not
  6834  // be included in the string output. The member name will be present, but the
  6835  // value will be replaced with "sensitive".
  6836  func (s DeleteIntentVersionInput) GoString() string {
  6837  	return s.String()
  6838  }
  6839  
  6840  // Validate inspects the fields of the type to determine if they are valid.
  6841  func (s *DeleteIntentVersionInput) Validate() error {
  6842  	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentVersionInput"}
  6843  	if s.Name == nil {
  6844  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6845  	}
  6846  	if s.Name != nil && len(*s.Name) < 1 {
  6847  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6848  	}
  6849  	if s.Version == nil {
  6850  		invalidParams.Add(request.NewErrParamRequired("Version"))
  6851  	}
  6852  	if s.Version != nil && len(*s.Version) < 1 {
  6853  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
  6854  	}
  6855  
  6856  	if invalidParams.Len() > 0 {
  6857  		return invalidParams
  6858  	}
  6859  	return nil
  6860  }
  6861  
  6862  // SetName sets the Name field's value.
  6863  func (s *DeleteIntentVersionInput) SetName(v string) *DeleteIntentVersionInput {
  6864  	s.Name = &v
  6865  	return s
  6866  }
  6867  
  6868  // SetVersion sets the Version field's value.
  6869  func (s *DeleteIntentVersionInput) SetVersion(v string) *DeleteIntentVersionInput {
  6870  	s.Version = &v
  6871  	return s
  6872  }
  6873  
  6874  type DeleteIntentVersionOutput struct {
  6875  	_ struct{} `type:"structure" nopayload:"true"`
  6876  }
  6877  
  6878  // String returns the string representation.
  6879  //
  6880  // API parameter values that are decorated as "sensitive" in the API will not
  6881  // be included in the string output. The member name will be present, but the
  6882  // value will be replaced with "sensitive".
  6883  func (s DeleteIntentVersionOutput) String() string {
  6884  	return awsutil.Prettify(s)
  6885  }
  6886  
  6887  // GoString returns the string representation.
  6888  //
  6889  // API parameter values that are decorated as "sensitive" in the API will not
  6890  // be included in the string output. The member name will be present, but the
  6891  // value will be replaced with "sensitive".
  6892  func (s DeleteIntentVersionOutput) GoString() string {
  6893  	return s.String()
  6894  }
  6895  
  6896  type DeleteSlotTypeInput struct {
  6897  	_ struct{} `type:"structure" nopayload:"true"`
  6898  
  6899  	// The name of the slot type. The name is case sensitive.
  6900  	//
  6901  	// Name is a required field
  6902  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6903  }
  6904  
  6905  // String returns the string representation.
  6906  //
  6907  // API parameter values that are decorated as "sensitive" in the API will not
  6908  // be included in the string output. The member name will be present, but the
  6909  // value will be replaced with "sensitive".
  6910  func (s DeleteSlotTypeInput) String() string {
  6911  	return awsutil.Prettify(s)
  6912  }
  6913  
  6914  // GoString returns the string representation.
  6915  //
  6916  // API parameter values that are decorated as "sensitive" in the API will not
  6917  // be included in the string output. The member name will be present, but the
  6918  // value will be replaced with "sensitive".
  6919  func (s DeleteSlotTypeInput) GoString() string {
  6920  	return s.String()
  6921  }
  6922  
  6923  // Validate inspects the fields of the type to determine if they are valid.
  6924  func (s *DeleteSlotTypeInput) Validate() error {
  6925  	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeInput"}
  6926  	if s.Name == nil {
  6927  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6928  	}
  6929  	if s.Name != nil && len(*s.Name) < 1 {
  6930  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6931  	}
  6932  
  6933  	if invalidParams.Len() > 0 {
  6934  		return invalidParams
  6935  	}
  6936  	return nil
  6937  }
  6938  
  6939  // SetName sets the Name field's value.
  6940  func (s *DeleteSlotTypeInput) SetName(v string) *DeleteSlotTypeInput {
  6941  	s.Name = &v
  6942  	return s
  6943  }
  6944  
  6945  type DeleteSlotTypeOutput struct {
  6946  	_ struct{} `type:"structure" nopayload:"true"`
  6947  }
  6948  
  6949  // String returns the string representation.
  6950  //
  6951  // API parameter values that are decorated as "sensitive" in the API will not
  6952  // be included in the string output. The member name will be present, but the
  6953  // value will be replaced with "sensitive".
  6954  func (s DeleteSlotTypeOutput) String() string {
  6955  	return awsutil.Prettify(s)
  6956  }
  6957  
  6958  // GoString returns the string representation.
  6959  //
  6960  // API parameter values that are decorated as "sensitive" in the API will not
  6961  // be included in the string output. The member name will be present, but the
  6962  // value will be replaced with "sensitive".
  6963  func (s DeleteSlotTypeOutput) GoString() string {
  6964  	return s.String()
  6965  }
  6966  
  6967  type DeleteSlotTypeVersionInput struct {
  6968  	_ struct{} `type:"structure" nopayload:"true"`
  6969  
  6970  	// The name of the slot type.
  6971  	//
  6972  	// Name is a required field
  6973  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6974  
  6975  	// The version of the slot type to delete. You cannot delete the $LATEST version
  6976  	// of the slot type. To delete the $LATEST version, use the DeleteSlotType operation.
  6977  	//
  6978  	// Version is a required field
  6979  	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
  6980  }
  6981  
  6982  // String returns the string representation.
  6983  //
  6984  // API parameter values that are decorated as "sensitive" in the API will not
  6985  // be included in the string output. The member name will be present, but the
  6986  // value will be replaced with "sensitive".
  6987  func (s DeleteSlotTypeVersionInput) String() string {
  6988  	return awsutil.Prettify(s)
  6989  }
  6990  
  6991  // GoString returns the string representation.
  6992  //
  6993  // API parameter values that are decorated as "sensitive" in the API will not
  6994  // be included in the string output. The member name will be present, but the
  6995  // value will be replaced with "sensitive".
  6996  func (s DeleteSlotTypeVersionInput) GoString() string {
  6997  	return s.String()
  6998  }
  6999  
  7000  // Validate inspects the fields of the type to determine if they are valid.
  7001  func (s *DeleteSlotTypeVersionInput) Validate() error {
  7002  	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeVersionInput"}
  7003  	if s.Name == nil {
  7004  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7005  	}
  7006  	if s.Name != nil && len(*s.Name) < 1 {
  7007  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7008  	}
  7009  	if s.Version == nil {
  7010  		invalidParams.Add(request.NewErrParamRequired("Version"))
  7011  	}
  7012  	if s.Version != nil && len(*s.Version) < 1 {
  7013  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
  7014  	}
  7015  
  7016  	if invalidParams.Len() > 0 {
  7017  		return invalidParams
  7018  	}
  7019  	return nil
  7020  }
  7021  
  7022  // SetName sets the Name field's value.
  7023  func (s *DeleteSlotTypeVersionInput) SetName(v string) *DeleteSlotTypeVersionInput {
  7024  	s.Name = &v
  7025  	return s
  7026  }
  7027  
  7028  // SetVersion sets the Version field's value.
  7029  func (s *DeleteSlotTypeVersionInput) SetVersion(v string) *DeleteSlotTypeVersionInput {
  7030  	s.Version = &v
  7031  	return s
  7032  }
  7033  
  7034  type DeleteSlotTypeVersionOutput struct {
  7035  	_ struct{} `type:"structure" nopayload:"true"`
  7036  }
  7037  
  7038  // String returns the string representation.
  7039  //
  7040  // API parameter values that are decorated as "sensitive" in the API will not
  7041  // be included in the string output. The member name will be present, but the
  7042  // value will be replaced with "sensitive".
  7043  func (s DeleteSlotTypeVersionOutput) String() string {
  7044  	return awsutil.Prettify(s)
  7045  }
  7046  
  7047  // GoString returns the string representation.
  7048  //
  7049  // API parameter values that are decorated as "sensitive" in the API will not
  7050  // be included in the string output. The member name will be present, but the
  7051  // value will be replaced with "sensitive".
  7052  func (s DeleteSlotTypeVersionOutput) GoString() string {
  7053  	return s.String()
  7054  }
  7055  
  7056  type DeleteUtterancesInput struct {
  7057  	_ struct{} `type:"structure" nopayload:"true"`
  7058  
  7059  	// The name of the bot that stored the utterances.
  7060  	//
  7061  	// BotName is a required field
  7062  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  7063  
  7064  	// The unique identifier for the user that made the utterances. This is the
  7065  	// user ID that was sent in the PostContent (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
  7066  	// or PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
  7067  	// operation request that contained the utterance.
  7068  	//
  7069  	// UserId is a required field
  7070  	UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"`
  7071  }
  7072  
  7073  // String returns the string representation.
  7074  //
  7075  // API parameter values that are decorated as "sensitive" in the API will not
  7076  // be included in the string output. The member name will be present, but the
  7077  // value will be replaced with "sensitive".
  7078  func (s DeleteUtterancesInput) String() string {
  7079  	return awsutil.Prettify(s)
  7080  }
  7081  
  7082  // GoString returns the string representation.
  7083  //
  7084  // API parameter values that are decorated as "sensitive" in the API will not
  7085  // be included in the string output. The member name will be present, but the
  7086  // value will be replaced with "sensitive".
  7087  func (s DeleteUtterancesInput) GoString() string {
  7088  	return s.String()
  7089  }
  7090  
  7091  // Validate inspects the fields of the type to determine if they are valid.
  7092  func (s *DeleteUtterancesInput) Validate() error {
  7093  	invalidParams := request.ErrInvalidParams{Context: "DeleteUtterancesInput"}
  7094  	if s.BotName == nil {
  7095  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  7096  	}
  7097  	if s.BotName != nil && len(*s.BotName) < 2 {
  7098  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  7099  	}
  7100  	if s.UserId == nil {
  7101  		invalidParams.Add(request.NewErrParamRequired("UserId"))
  7102  	}
  7103  	if s.UserId != nil && len(*s.UserId) < 2 {
  7104  		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
  7105  	}
  7106  
  7107  	if invalidParams.Len() > 0 {
  7108  		return invalidParams
  7109  	}
  7110  	return nil
  7111  }
  7112  
  7113  // SetBotName sets the BotName field's value.
  7114  func (s *DeleteUtterancesInput) SetBotName(v string) *DeleteUtterancesInput {
  7115  	s.BotName = &v
  7116  	return s
  7117  }
  7118  
  7119  // SetUserId sets the UserId field's value.
  7120  func (s *DeleteUtterancesInput) SetUserId(v string) *DeleteUtterancesInput {
  7121  	s.UserId = &v
  7122  	return s
  7123  }
  7124  
  7125  type DeleteUtterancesOutput struct {
  7126  	_ struct{} `type:"structure" nopayload:"true"`
  7127  }
  7128  
  7129  // String returns the string representation.
  7130  //
  7131  // API parameter values that are decorated as "sensitive" in the API will not
  7132  // be included in the string output. The member name will be present, but the
  7133  // value will be replaced with "sensitive".
  7134  func (s DeleteUtterancesOutput) String() string {
  7135  	return awsutil.Prettify(s)
  7136  }
  7137  
  7138  // GoString returns the string representation.
  7139  //
  7140  // API parameter values that are decorated as "sensitive" in the API will not
  7141  // be included in the string output. The member name will be present, but the
  7142  // value will be replaced with "sensitive".
  7143  func (s DeleteUtterancesOutput) GoString() string {
  7144  	return s.String()
  7145  }
  7146  
  7147  // Each slot type can have a set of values. Each enumeration value represents
  7148  // a value the slot type can take.
  7149  //
  7150  // For example, a pizza ordering bot could have a slot type that specifies the
  7151  // type of crust that the pizza should have. The slot type could include the
  7152  // values
  7153  //
  7154  //    * thick
  7155  //
  7156  //    * thin
  7157  //
  7158  //    * stuffed
  7159  type EnumerationValue struct {
  7160  	_ struct{} `type:"structure"`
  7161  
  7162  	// Additional values related to the slot type value.
  7163  	Synonyms []*string `locationName:"synonyms" type:"list"`
  7164  
  7165  	// The value of the slot type.
  7166  	//
  7167  	// Value is a required field
  7168  	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
  7169  }
  7170  
  7171  // String returns the string representation.
  7172  //
  7173  // API parameter values that are decorated as "sensitive" in the API will not
  7174  // be included in the string output. The member name will be present, but the
  7175  // value will be replaced with "sensitive".
  7176  func (s EnumerationValue) String() string {
  7177  	return awsutil.Prettify(s)
  7178  }
  7179  
  7180  // GoString returns the string representation.
  7181  //
  7182  // API parameter values that are decorated as "sensitive" in the API will not
  7183  // be included in the string output. The member name will be present, but the
  7184  // value will be replaced with "sensitive".
  7185  func (s EnumerationValue) GoString() string {
  7186  	return s.String()
  7187  }
  7188  
  7189  // Validate inspects the fields of the type to determine if they are valid.
  7190  func (s *EnumerationValue) Validate() error {
  7191  	invalidParams := request.ErrInvalidParams{Context: "EnumerationValue"}
  7192  	if s.Value == nil {
  7193  		invalidParams.Add(request.NewErrParamRequired("Value"))
  7194  	}
  7195  	if s.Value != nil && len(*s.Value) < 1 {
  7196  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
  7197  	}
  7198  
  7199  	if invalidParams.Len() > 0 {
  7200  		return invalidParams
  7201  	}
  7202  	return nil
  7203  }
  7204  
  7205  // SetSynonyms sets the Synonyms field's value.
  7206  func (s *EnumerationValue) SetSynonyms(v []*string) *EnumerationValue {
  7207  	s.Synonyms = v
  7208  	return s
  7209  }
  7210  
  7211  // SetValue sets the Value field's value.
  7212  func (s *EnumerationValue) SetValue(v string) *EnumerationValue {
  7213  	s.Value = &v
  7214  	return s
  7215  }
  7216  
  7217  // A prompt for additional activity after an intent is fulfilled. For example,
  7218  // after the OrderPizza intent is fulfilled, you might prompt the user to find
  7219  // out whether the user wants to order drinks.
  7220  type FollowUpPrompt struct {
  7221  	_ struct{} `type:"structure"`
  7222  
  7223  	// Prompts for information from the user.
  7224  	//
  7225  	// Prompt is a required field
  7226  	Prompt *Prompt `locationName:"prompt" type:"structure" required:"true"`
  7227  
  7228  	// If the user answers "no" to the question defined in the prompt field, Amazon
  7229  	// Lex responds with this statement to acknowledge that the intent was canceled.
  7230  	//
  7231  	// RejectionStatement is a required field
  7232  	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure" required:"true"`
  7233  }
  7234  
  7235  // String returns the string representation.
  7236  //
  7237  // API parameter values that are decorated as "sensitive" in the API will not
  7238  // be included in the string output. The member name will be present, but the
  7239  // value will be replaced with "sensitive".
  7240  func (s FollowUpPrompt) String() string {
  7241  	return awsutil.Prettify(s)
  7242  }
  7243  
  7244  // GoString returns the string representation.
  7245  //
  7246  // API parameter values that are decorated as "sensitive" in the API will not
  7247  // be included in the string output. The member name will be present, but the
  7248  // value will be replaced with "sensitive".
  7249  func (s FollowUpPrompt) GoString() string {
  7250  	return s.String()
  7251  }
  7252  
  7253  // Validate inspects the fields of the type to determine if they are valid.
  7254  func (s *FollowUpPrompt) Validate() error {
  7255  	invalidParams := request.ErrInvalidParams{Context: "FollowUpPrompt"}
  7256  	if s.Prompt == nil {
  7257  		invalidParams.Add(request.NewErrParamRequired("Prompt"))
  7258  	}
  7259  	if s.RejectionStatement == nil {
  7260  		invalidParams.Add(request.NewErrParamRequired("RejectionStatement"))
  7261  	}
  7262  	if s.Prompt != nil {
  7263  		if err := s.Prompt.Validate(); err != nil {
  7264  			invalidParams.AddNested("Prompt", err.(request.ErrInvalidParams))
  7265  		}
  7266  	}
  7267  	if s.RejectionStatement != nil {
  7268  		if err := s.RejectionStatement.Validate(); err != nil {
  7269  			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
  7270  		}
  7271  	}
  7272  
  7273  	if invalidParams.Len() > 0 {
  7274  		return invalidParams
  7275  	}
  7276  	return nil
  7277  }
  7278  
  7279  // SetPrompt sets the Prompt field's value.
  7280  func (s *FollowUpPrompt) SetPrompt(v *Prompt) *FollowUpPrompt {
  7281  	s.Prompt = v
  7282  	return s
  7283  }
  7284  
  7285  // SetRejectionStatement sets the RejectionStatement field's value.
  7286  func (s *FollowUpPrompt) SetRejectionStatement(v *Statement) *FollowUpPrompt {
  7287  	s.RejectionStatement = v
  7288  	return s
  7289  }
  7290  
  7291  // Describes how the intent is fulfilled after the user provides all of the
  7292  // information required for the intent. You can provide a Lambda function to
  7293  // process the intent, or you can return the intent information to the client
  7294  // application. We recommend that you use a Lambda function so that the relevant
  7295  // logic lives in the Cloud and limit the client-side code primarily to presentation.
  7296  // If you need to update the logic, you only update the Lambda function; you
  7297  // don't need to upgrade your client application.
  7298  //
  7299  // Consider the following examples:
  7300  //
  7301  //    * In a pizza ordering application, after the user provides all of the
  7302  //    information for placing an order, you use a Lambda function to place an
  7303  //    order with a pizzeria.
  7304  //
  7305  //    * In a gaming application, when a user says "pick up a rock," this information
  7306  //    must go back to the client application so that it can perform the operation
  7307  //    and update the graphics. In this case, you want Amazon Lex to return the
  7308  //    intent data to the client.
  7309  type FulfillmentActivity struct {
  7310  	_ struct{} `type:"structure"`
  7311  
  7312  	// A description of the Lambda function that is run to fulfill the intent.
  7313  	CodeHook *CodeHook `locationName:"codeHook" type:"structure"`
  7314  
  7315  	// How the intent should be fulfilled, either by running a Lambda function or
  7316  	// by returning the slot data to the client application.
  7317  	//
  7318  	// Type is a required field
  7319  	Type *string `locationName:"type" type:"string" required:"true" enum:"FulfillmentActivityType"`
  7320  }
  7321  
  7322  // String returns the string representation.
  7323  //
  7324  // API parameter values that are decorated as "sensitive" in the API will not
  7325  // be included in the string output. The member name will be present, but the
  7326  // value will be replaced with "sensitive".
  7327  func (s FulfillmentActivity) String() string {
  7328  	return awsutil.Prettify(s)
  7329  }
  7330  
  7331  // GoString returns the string representation.
  7332  //
  7333  // API parameter values that are decorated as "sensitive" in the API will not
  7334  // be included in the string output. The member name will be present, but the
  7335  // value will be replaced with "sensitive".
  7336  func (s FulfillmentActivity) GoString() string {
  7337  	return s.String()
  7338  }
  7339  
  7340  // Validate inspects the fields of the type to determine if they are valid.
  7341  func (s *FulfillmentActivity) Validate() error {
  7342  	invalidParams := request.ErrInvalidParams{Context: "FulfillmentActivity"}
  7343  	if s.Type == nil {
  7344  		invalidParams.Add(request.NewErrParamRequired("Type"))
  7345  	}
  7346  	if s.CodeHook != nil {
  7347  		if err := s.CodeHook.Validate(); err != nil {
  7348  			invalidParams.AddNested("CodeHook", err.(request.ErrInvalidParams))
  7349  		}
  7350  	}
  7351  
  7352  	if invalidParams.Len() > 0 {
  7353  		return invalidParams
  7354  	}
  7355  	return nil
  7356  }
  7357  
  7358  // SetCodeHook sets the CodeHook field's value.
  7359  func (s *FulfillmentActivity) SetCodeHook(v *CodeHook) *FulfillmentActivity {
  7360  	s.CodeHook = v
  7361  	return s
  7362  }
  7363  
  7364  // SetType sets the Type field's value.
  7365  func (s *FulfillmentActivity) SetType(v string) *FulfillmentActivity {
  7366  	s.Type = &v
  7367  	return s
  7368  }
  7369  
  7370  type GetBotAliasInput struct {
  7371  	_ struct{} `type:"structure" nopayload:"true"`
  7372  
  7373  	// The name of the bot.
  7374  	//
  7375  	// BotName is a required field
  7376  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  7377  
  7378  	// The name of the bot alias. The name is case sensitive.
  7379  	//
  7380  	// Name is a required field
  7381  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  7382  }
  7383  
  7384  // String returns the string representation.
  7385  //
  7386  // API parameter values that are decorated as "sensitive" in the API will not
  7387  // be included in the string output. The member name will be present, but the
  7388  // value will be replaced with "sensitive".
  7389  func (s GetBotAliasInput) String() string {
  7390  	return awsutil.Prettify(s)
  7391  }
  7392  
  7393  // GoString returns the string representation.
  7394  //
  7395  // API parameter values that are decorated as "sensitive" in the API will not
  7396  // be included in the string output. The member name will be present, but the
  7397  // value will be replaced with "sensitive".
  7398  func (s GetBotAliasInput) GoString() string {
  7399  	return s.String()
  7400  }
  7401  
  7402  // Validate inspects the fields of the type to determine if they are valid.
  7403  func (s *GetBotAliasInput) Validate() error {
  7404  	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasInput"}
  7405  	if s.BotName == nil {
  7406  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  7407  	}
  7408  	if s.BotName != nil && len(*s.BotName) < 2 {
  7409  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  7410  	}
  7411  	if s.Name == nil {
  7412  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7413  	}
  7414  	if s.Name != nil && len(*s.Name) < 1 {
  7415  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7416  	}
  7417  
  7418  	if invalidParams.Len() > 0 {
  7419  		return invalidParams
  7420  	}
  7421  	return nil
  7422  }
  7423  
  7424  // SetBotName sets the BotName field's value.
  7425  func (s *GetBotAliasInput) SetBotName(v string) *GetBotAliasInput {
  7426  	s.BotName = &v
  7427  	return s
  7428  }
  7429  
  7430  // SetName sets the Name field's value.
  7431  func (s *GetBotAliasInput) SetName(v string) *GetBotAliasInput {
  7432  	s.Name = &v
  7433  	return s
  7434  }
  7435  
  7436  type GetBotAliasOutput struct {
  7437  	_ struct{} `type:"structure"`
  7438  
  7439  	// The name of the bot that the alias points to.
  7440  	BotName *string `locationName:"botName" min:"2" type:"string"`
  7441  
  7442  	// The version of the bot that the alias points to.
  7443  	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
  7444  
  7445  	// Checksum of the bot alias.
  7446  	Checksum *string `locationName:"checksum" type:"string"`
  7447  
  7448  	// The settings that determine how Amazon Lex uses conversation logs for the
  7449  	// alias.
  7450  	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
  7451  
  7452  	// The date that the bot alias was created.
  7453  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  7454  
  7455  	// A description of the bot alias.
  7456  	Description *string `locationName:"description" type:"string"`
  7457  
  7458  	// The date that the bot alias was updated. When you create a resource, the
  7459  	// creation date and the last updated date are the same.
  7460  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  7461  
  7462  	// The name of the bot alias.
  7463  	Name *string `locationName:"name" min:"1" type:"string"`
  7464  }
  7465  
  7466  // String returns the string representation.
  7467  //
  7468  // API parameter values that are decorated as "sensitive" in the API will not
  7469  // be included in the string output. The member name will be present, but the
  7470  // value will be replaced with "sensitive".
  7471  func (s GetBotAliasOutput) String() string {
  7472  	return awsutil.Prettify(s)
  7473  }
  7474  
  7475  // GoString returns the string representation.
  7476  //
  7477  // API parameter values that are decorated as "sensitive" in the API will not
  7478  // be included in the string output. The member name will be present, but the
  7479  // value will be replaced with "sensitive".
  7480  func (s GetBotAliasOutput) GoString() string {
  7481  	return s.String()
  7482  }
  7483  
  7484  // SetBotName sets the BotName field's value.
  7485  func (s *GetBotAliasOutput) SetBotName(v string) *GetBotAliasOutput {
  7486  	s.BotName = &v
  7487  	return s
  7488  }
  7489  
  7490  // SetBotVersion sets the BotVersion field's value.
  7491  func (s *GetBotAliasOutput) SetBotVersion(v string) *GetBotAliasOutput {
  7492  	s.BotVersion = &v
  7493  	return s
  7494  }
  7495  
  7496  // SetChecksum sets the Checksum field's value.
  7497  func (s *GetBotAliasOutput) SetChecksum(v string) *GetBotAliasOutput {
  7498  	s.Checksum = &v
  7499  	return s
  7500  }
  7501  
  7502  // SetConversationLogs sets the ConversationLogs field's value.
  7503  func (s *GetBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *GetBotAliasOutput {
  7504  	s.ConversationLogs = v
  7505  	return s
  7506  }
  7507  
  7508  // SetCreatedDate sets the CreatedDate field's value.
  7509  func (s *GetBotAliasOutput) SetCreatedDate(v time.Time) *GetBotAliasOutput {
  7510  	s.CreatedDate = &v
  7511  	return s
  7512  }
  7513  
  7514  // SetDescription sets the Description field's value.
  7515  func (s *GetBotAliasOutput) SetDescription(v string) *GetBotAliasOutput {
  7516  	s.Description = &v
  7517  	return s
  7518  }
  7519  
  7520  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  7521  func (s *GetBotAliasOutput) SetLastUpdatedDate(v time.Time) *GetBotAliasOutput {
  7522  	s.LastUpdatedDate = &v
  7523  	return s
  7524  }
  7525  
  7526  // SetName sets the Name field's value.
  7527  func (s *GetBotAliasOutput) SetName(v string) *GetBotAliasOutput {
  7528  	s.Name = &v
  7529  	return s
  7530  }
  7531  
  7532  type GetBotAliasesInput struct {
  7533  	_ struct{} `type:"structure" nopayload:"true"`
  7534  
  7535  	// The name of the bot.
  7536  	//
  7537  	// BotName is a required field
  7538  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  7539  
  7540  	// The maximum number of aliases to return in the response. The default is 50. .
  7541  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7542  
  7543  	// Substring to match in bot alias names. An alias will be returned if any part
  7544  	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
  7545  	// and "abcxyz."
  7546  	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
  7547  
  7548  	// A pagination token for fetching the next page of aliases. If the response
  7549  	// to this call is truncated, Amazon Lex returns a pagination token in the response.
  7550  	// To fetch the next page of aliases, specify the pagination token in the next
  7551  	// request.
  7552  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7553  }
  7554  
  7555  // String returns the string representation.
  7556  //
  7557  // API parameter values that are decorated as "sensitive" in the API will not
  7558  // be included in the string output. The member name will be present, but the
  7559  // value will be replaced with "sensitive".
  7560  func (s GetBotAliasesInput) String() string {
  7561  	return awsutil.Prettify(s)
  7562  }
  7563  
  7564  // GoString returns the string representation.
  7565  //
  7566  // API parameter values that are decorated as "sensitive" in the API will not
  7567  // be included in the string output. The member name will be present, but the
  7568  // value will be replaced with "sensitive".
  7569  func (s GetBotAliasesInput) GoString() string {
  7570  	return s.String()
  7571  }
  7572  
  7573  // Validate inspects the fields of the type to determine if they are valid.
  7574  func (s *GetBotAliasesInput) Validate() error {
  7575  	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasesInput"}
  7576  	if s.BotName == nil {
  7577  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  7578  	}
  7579  	if s.BotName != nil && len(*s.BotName) < 2 {
  7580  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  7581  	}
  7582  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7583  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7584  	}
  7585  	if s.NameContains != nil && len(*s.NameContains) < 1 {
  7586  		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
  7587  	}
  7588  
  7589  	if invalidParams.Len() > 0 {
  7590  		return invalidParams
  7591  	}
  7592  	return nil
  7593  }
  7594  
  7595  // SetBotName sets the BotName field's value.
  7596  func (s *GetBotAliasesInput) SetBotName(v string) *GetBotAliasesInput {
  7597  	s.BotName = &v
  7598  	return s
  7599  }
  7600  
  7601  // SetMaxResults sets the MaxResults field's value.
  7602  func (s *GetBotAliasesInput) SetMaxResults(v int64) *GetBotAliasesInput {
  7603  	s.MaxResults = &v
  7604  	return s
  7605  }
  7606  
  7607  // SetNameContains sets the NameContains field's value.
  7608  func (s *GetBotAliasesInput) SetNameContains(v string) *GetBotAliasesInput {
  7609  	s.NameContains = &v
  7610  	return s
  7611  }
  7612  
  7613  // SetNextToken sets the NextToken field's value.
  7614  func (s *GetBotAliasesInput) SetNextToken(v string) *GetBotAliasesInput {
  7615  	s.NextToken = &v
  7616  	return s
  7617  }
  7618  
  7619  type GetBotAliasesOutput struct {
  7620  	_ struct{} `type:"structure"`
  7621  
  7622  	// An array of BotAliasMetadata objects, each describing a bot alias.
  7623  	BotAliases []*BotAliasMetadata `type:"list"`
  7624  
  7625  	// A pagination token for fetching next page of aliases. If the response to
  7626  	// this call is truncated, Amazon Lex returns a pagination token in the response.
  7627  	// To fetch the next page of aliases, specify the pagination token in the next
  7628  	// request.
  7629  	NextToken *string `locationName:"nextToken" type:"string"`
  7630  }
  7631  
  7632  // String returns the string representation.
  7633  //
  7634  // API parameter values that are decorated as "sensitive" in the API will not
  7635  // be included in the string output. The member name will be present, but the
  7636  // value will be replaced with "sensitive".
  7637  func (s GetBotAliasesOutput) String() string {
  7638  	return awsutil.Prettify(s)
  7639  }
  7640  
  7641  // GoString returns the string representation.
  7642  //
  7643  // API parameter values that are decorated as "sensitive" in the API will not
  7644  // be included in the string output. The member name will be present, but the
  7645  // value will be replaced with "sensitive".
  7646  func (s GetBotAliasesOutput) GoString() string {
  7647  	return s.String()
  7648  }
  7649  
  7650  // SetBotAliases sets the BotAliases field's value.
  7651  func (s *GetBotAliasesOutput) SetBotAliases(v []*BotAliasMetadata) *GetBotAliasesOutput {
  7652  	s.BotAliases = v
  7653  	return s
  7654  }
  7655  
  7656  // SetNextToken sets the NextToken field's value.
  7657  func (s *GetBotAliasesOutput) SetNextToken(v string) *GetBotAliasesOutput {
  7658  	s.NextToken = &v
  7659  	return s
  7660  }
  7661  
  7662  type GetBotChannelAssociationInput struct {
  7663  	_ struct{} `type:"structure" nopayload:"true"`
  7664  
  7665  	// An alias pointing to the specific version of the Amazon Lex bot to which
  7666  	// this association is being made.
  7667  	//
  7668  	// BotAlias is a required field
  7669  	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
  7670  
  7671  	// The name of the Amazon Lex bot.
  7672  	//
  7673  	// BotName is a required field
  7674  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  7675  
  7676  	// The name of the association between the bot and the channel. The name is
  7677  	// case sensitive.
  7678  	//
  7679  	// Name is a required field
  7680  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  7681  }
  7682  
  7683  // String returns the string representation.
  7684  //
  7685  // API parameter values that are decorated as "sensitive" in the API will not
  7686  // be included in the string output. The member name will be present, but the
  7687  // value will be replaced with "sensitive".
  7688  func (s GetBotChannelAssociationInput) String() string {
  7689  	return awsutil.Prettify(s)
  7690  }
  7691  
  7692  // GoString returns the string representation.
  7693  //
  7694  // API parameter values that are decorated as "sensitive" in the API will not
  7695  // be included in the string output. The member name will be present, but the
  7696  // value will be replaced with "sensitive".
  7697  func (s GetBotChannelAssociationInput) GoString() string {
  7698  	return s.String()
  7699  }
  7700  
  7701  // Validate inspects the fields of the type to determine if they are valid.
  7702  func (s *GetBotChannelAssociationInput) Validate() error {
  7703  	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationInput"}
  7704  	if s.BotAlias == nil {
  7705  		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
  7706  	}
  7707  	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
  7708  		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
  7709  	}
  7710  	if s.BotName == nil {
  7711  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  7712  	}
  7713  	if s.BotName != nil && len(*s.BotName) < 2 {
  7714  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  7715  	}
  7716  	if s.Name == nil {
  7717  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7718  	}
  7719  	if s.Name != nil && len(*s.Name) < 1 {
  7720  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7721  	}
  7722  
  7723  	if invalidParams.Len() > 0 {
  7724  		return invalidParams
  7725  	}
  7726  	return nil
  7727  }
  7728  
  7729  // SetBotAlias sets the BotAlias field's value.
  7730  func (s *GetBotChannelAssociationInput) SetBotAlias(v string) *GetBotChannelAssociationInput {
  7731  	s.BotAlias = &v
  7732  	return s
  7733  }
  7734  
  7735  // SetBotName sets the BotName field's value.
  7736  func (s *GetBotChannelAssociationInput) SetBotName(v string) *GetBotChannelAssociationInput {
  7737  	s.BotName = &v
  7738  	return s
  7739  }
  7740  
  7741  // SetName sets the Name field's value.
  7742  func (s *GetBotChannelAssociationInput) SetName(v string) *GetBotChannelAssociationInput {
  7743  	s.Name = &v
  7744  	return s
  7745  }
  7746  
  7747  type GetBotChannelAssociationOutput struct {
  7748  	_ struct{} `type:"structure"`
  7749  
  7750  	// An alias pointing to the specific version of the Amazon Lex bot to which
  7751  	// this association is being made.
  7752  	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
  7753  
  7754  	// Provides information that the messaging platform needs to communicate with
  7755  	// the Amazon Lex bot.
  7756  	//
  7757  	// BotConfiguration is a sensitive parameter and its value will be
  7758  	// replaced with "sensitive" in string returned by GetBotChannelAssociationOutput's
  7759  	// String and GoString methods.
  7760  	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
  7761  
  7762  	// The name of the Amazon Lex bot.
  7763  	BotName *string `locationName:"botName" min:"2" type:"string"`
  7764  
  7765  	// The date that the association between the bot and the channel was created.
  7766  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  7767  
  7768  	// A description of the association between the bot and the channel.
  7769  	Description *string `locationName:"description" type:"string"`
  7770  
  7771  	// If status is FAILED, Amazon Lex provides the reason that it failed to create
  7772  	// the association.
  7773  	FailureReason *string `locationName:"failureReason" type:"string"`
  7774  
  7775  	// The name of the association between the bot and the channel.
  7776  	Name *string `locationName:"name" min:"1" type:"string"`
  7777  
  7778  	// The status of the bot channel.
  7779  	//
  7780  	//    * CREATED - The channel has been created and is ready for use.
  7781  	//
  7782  	//    * IN_PROGRESS - Channel creation is in progress.
  7783  	//
  7784  	//    * FAILED - There was an error creating the channel. For information about
  7785  	//    the reason for the failure, see the failureReason field.
  7786  	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
  7787  
  7788  	// The type of the messaging platform.
  7789  	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
  7790  }
  7791  
  7792  // String returns the string representation.
  7793  //
  7794  // API parameter values that are decorated as "sensitive" in the API will not
  7795  // be included in the string output. The member name will be present, but the
  7796  // value will be replaced with "sensitive".
  7797  func (s GetBotChannelAssociationOutput) String() string {
  7798  	return awsutil.Prettify(s)
  7799  }
  7800  
  7801  // GoString returns the string representation.
  7802  //
  7803  // API parameter values that are decorated as "sensitive" in the API will not
  7804  // be included in the string output. The member name will be present, but the
  7805  // value will be replaced with "sensitive".
  7806  func (s GetBotChannelAssociationOutput) GoString() string {
  7807  	return s.String()
  7808  }
  7809  
  7810  // SetBotAlias sets the BotAlias field's value.
  7811  func (s *GetBotChannelAssociationOutput) SetBotAlias(v string) *GetBotChannelAssociationOutput {
  7812  	s.BotAlias = &v
  7813  	return s
  7814  }
  7815  
  7816  // SetBotConfiguration sets the BotConfiguration field's value.
  7817  func (s *GetBotChannelAssociationOutput) SetBotConfiguration(v map[string]*string) *GetBotChannelAssociationOutput {
  7818  	s.BotConfiguration = v
  7819  	return s
  7820  }
  7821  
  7822  // SetBotName sets the BotName field's value.
  7823  func (s *GetBotChannelAssociationOutput) SetBotName(v string) *GetBotChannelAssociationOutput {
  7824  	s.BotName = &v
  7825  	return s
  7826  }
  7827  
  7828  // SetCreatedDate sets the CreatedDate field's value.
  7829  func (s *GetBotChannelAssociationOutput) SetCreatedDate(v time.Time) *GetBotChannelAssociationOutput {
  7830  	s.CreatedDate = &v
  7831  	return s
  7832  }
  7833  
  7834  // SetDescription sets the Description field's value.
  7835  func (s *GetBotChannelAssociationOutput) SetDescription(v string) *GetBotChannelAssociationOutput {
  7836  	s.Description = &v
  7837  	return s
  7838  }
  7839  
  7840  // SetFailureReason sets the FailureReason field's value.
  7841  func (s *GetBotChannelAssociationOutput) SetFailureReason(v string) *GetBotChannelAssociationOutput {
  7842  	s.FailureReason = &v
  7843  	return s
  7844  }
  7845  
  7846  // SetName sets the Name field's value.
  7847  func (s *GetBotChannelAssociationOutput) SetName(v string) *GetBotChannelAssociationOutput {
  7848  	s.Name = &v
  7849  	return s
  7850  }
  7851  
  7852  // SetStatus sets the Status field's value.
  7853  func (s *GetBotChannelAssociationOutput) SetStatus(v string) *GetBotChannelAssociationOutput {
  7854  	s.Status = &v
  7855  	return s
  7856  }
  7857  
  7858  // SetType sets the Type field's value.
  7859  func (s *GetBotChannelAssociationOutput) SetType(v string) *GetBotChannelAssociationOutput {
  7860  	s.Type = &v
  7861  	return s
  7862  }
  7863  
  7864  type GetBotChannelAssociationsInput struct {
  7865  	_ struct{} `type:"structure" nopayload:"true"`
  7866  
  7867  	// An alias pointing to the specific version of the Amazon Lex bot to which
  7868  	// this association is being made.
  7869  	//
  7870  	// BotAlias is a required field
  7871  	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
  7872  
  7873  	// The name of the Amazon Lex bot in the association.
  7874  	//
  7875  	// BotName is a required field
  7876  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
  7877  
  7878  	// The maximum number of associations to return in the response. The default
  7879  	// is 50.
  7880  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7881  
  7882  	// Substring to match in channel association names. An association will be returned
  7883  	// if any part of its name matches the substring. For example, "xyz" matches
  7884  	// both "xyzabc" and "abcxyz." To return all bot channel associations, use a
  7885  	// hyphen ("-") as the nameContains parameter.
  7886  	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
  7887  
  7888  	// A pagination token for fetching the next page of associations. If the response
  7889  	// to this call is truncated, Amazon Lex returns a pagination token in the response.
  7890  	// To fetch the next page of associations, specify the pagination token in the
  7891  	// next request.
  7892  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7893  }
  7894  
  7895  // String returns the string representation.
  7896  //
  7897  // API parameter values that are decorated as "sensitive" in the API will not
  7898  // be included in the string output. The member name will be present, but the
  7899  // value will be replaced with "sensitive".
  7900  func (s GetBotChannelAssociationsInput) String() string {
  7901  	return awsutil.Prettify(s)
  7902  }
  7903  
  7904  // GoString returns the string representation.
  7905  //
  7906  // API parameter values that are decorated as "sensitive" in the API will not
  7907  // be included in the string output. The member name will be present, but the
  7908  // value will be replaced with "sensitive".
  7909  func (s GetBotChannelAssociationsInput) GoString() string {
  7910  	return s.String()
  7911  }
  7912  
  7913  // Validate inspects the fields of the type to determine if they are valid.
  7914  func (s *GetBotChannelAssociationsInput) Validate() error {
  7915  	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationsInput"}
  7916  	if s.BotAlias == nil {
  7917  		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
  7918  	}
  7919  	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
  7920  		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
  7921  	}
  7922  	if s.BotName == nil {
  7923  		invalidParams.Add(request.NewErrParamRequired("BotName"))
  7924  	}
  7925  	if s.BotName != nil && len(*s.BotName) < 2 {
  7926  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
  7927  	}
  7928  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7929  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7930  	}
  7931  	if s.NameContains != nil && len(*s.NameContains) < 1 {
  7932  		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
  7933  	}
  7934  
  7935  	if invalidParams.Len() > 0 {
  7936  		return invalidParams
  7937  	}
  7938  	return nil
  7939  }
  7940  
  7941  // SetBotAlias sets the BotAlias field's value.
  7942  func (s *GetBotChannelAssociationsInput) SetBotAlias(v string) *GetBotChannelAssociationsInput {
  7943  	s.BotAlias = &v
  7944  	return s
  7945  }
  7946  
  7947  // SetBotName sets the BotName field's value.
  7948  func (s *GetBotChannelAssociationsInput) SetBotName(v string) *GetBotChannelAssociationsInput {
  7949  	s.BotName = &v
  7950  	return s
  7951  }
  7952  
  7953  // SetMaxResults sets the MaxResults field's value.
  7954  func (s *GetBotChannelAssociationsInput) SetMaxResults(v int64) *GetBotChannelAssociationsInput {
  7955  	s.MaxResults = &v
  7956  	return s
  7957  }
  7958  
  7959  // SetNameContains sets the NameContains field's value.
  7960  func (s *GetBotChannelAssociationsInput) SetNameContains(v string) *GetBotChannelAssociationsInput {
  7961  	s.NameContains = &v
  7962  	return s
  7963  }
  7964  
  7965  // SetNextToken sets the NextToken field's value.
  7966  func (s *GetBotChannelAssociationsInput) SetNextToken(v string) *GetBotChannelAssociationsInput {
  7967  	s.NextToken = &v
  7968  	return s
  7969  }
  7970  
  7971  type GetBotChannelAssociationsOutput struct {
  7972  	_ struct{} `type:"structure"`
  7973  
  7974  	// An array of objects, one for each association, that provides information
  7975  	// about the Amazon Lex bot and its association with the channel.
  7976  	BotChannelAssociations []*BotChannelAssociation `locationName:"botChannelAssociations" type:"list"`
  7977  
  7978  	// A pagination token that fetches the next page of associations. If the response
  7979  	// to this call is truncated, Amazon Lex returns a pagination token in the response.
  7980  	// To fetch the next page of associations, specify the pagination token in the
  7981  	// next request.
  7982  	NextToken *string `locationName:"nextToken" type:"string"`
  7983  }
  7984  
  7985  // String returns the string representation.
  7986  //
  7987  // API parameter values that are decorated as "sensitive" in the API will not
  7988  // be included in the string output. The member name will be present, but the
  7989  // value will be replaced with "sensitive".
  7990  func (s GetBotChannelAssociationsOutput) String() string {
  7991  	return awsutil.Prettify(s)
  7992  }
  7993  
  7994  // GoString returns the string representation.
  7995  //
  7996  // API parameter values that are decorated as "sensitive" in the API will not
  7997  // be included in the string output. The member name will be present, but the
  7998  // value will be replaced with "sensitive".
  7999  func (s GetBotChannelAssociationsOutput) GoString() string {
  8000  	return s.String()
  8001  }
  8002  
  8003  // SetBotChannelAssociations sets the BotChannelAssociations field's value.
  8004  func (s *GetBotChannelAssociationsOutput) SetBotChannelAssociations(v []*BotChannelAssociation) *GetBotChannelAssociationsOutput {
  8005  	s.BotChannelAssociations = v
  8006  	return s
  8007  }
  8008  
  8009  // SetNextToken sets the NextToken field's value.
  8010  func (s *GetBotChannelAssociationsOutput) SetNextToken(v string) *GetBotChannelAssociationsOutput {
  8011  	s.NextToken = &v
  8012  	return s
  8013  }
  8014  
  8015  type GetBotInput struct {
  8016  	_ struct{} `type:"structure" nopayload:"true"`
  8017  
  8018  	// The name of the bot. The name is case sensitive.
  8019  	//
  8020  	// Name is a required field
  8021  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
  8022  
  8023  	// The version or alias of the bot.
  8024  	//
  8025  	// VersionOrAlias is a required field
  8026  	VersionOrAlias *string `location:"uri" locationName:"versionoralias" type:"string" required:"true"`
  8027  }
  8028  
  8029  // String returns the string representation.
  8030  //
  8031  // API parameter values that are decorated as "sensitive" in the API will not
  8032  // be included in the string output. The member name will be present, but the
  8033  // value will be replaced with "sensitive".
  8034  func (s GetBotInput) String() string {
  8035  	return awsutil.Prettify(s)
  8036  }
  8037  
  8038  // GoString returns the string representation.
  8039  //
  8040  // API parameter values that are decorated as "sensitive" in the API will not
  8041  // be included in the string output. The member name will be present, but the
  8042  // value will be replaced with "sensitive".
  8043  func (s GetBotInput) GoString() string {
  8044  	return s.String()
  8045  }
  8046  
  8047  // Validate inspects the fields of the type to determine if they are valid.
  8048  func (s *GetBotInput) Validate() error {
  8049  	invalidParams := request.ErrInvalidParams{Context: "GetBotInput"}
  8050  	if s.Name == nil {
  8051  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8052  	}
  8053  	if s.Name != nil && len(*s.Name) < 2 {
  8054  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
  8055  	}
  8056  	if s.VersionOrAlias == nil {
  8057  		invalidParams.Add(request.NewErrParamRequired("VersionOrAlias"))
  8058  	}
  8059  	if s.VersionOrAlias != nil && len(*s.VersionOrAlias) < 1 {
  8060  		invalidParams.Add(request.NewErrParamMinLen("VersionOrAlias", 1))
  8061  	}
  8062  
  8063  	if invalidParams.Len() > 0 {
  8064  		return invalidParams
  8065  	}
  8066  	return nil
  8067  }
  8068  
  8069  // SetName sets the Name field's value.
  8070  func (s *GetBotInput) SetName(v string) *GetBotInput {
  8071  	s.Name = &v
  8072  	return s
  8073  }
  8074  
  8075  // SetVersionOrAlias sets the VersionOrAlias field's value.
  8076  func (s *GetBotInput) SetVersionOrAlias(v string) *GetBotInput {
  8077  	s.VersionOrAlias = &v
  8078  	return s
  8079  }
  8080  
  8081  type GetBotOutput struct {
  8082  	_ struct{} `type:"structure"`
  8083  
  8084  	// The message that Amazon Lex returns when the user elects to end the conversation
  8085  	// without completing it. For more information, see PutBot.
  8086  	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
  8087  
  8088  	// Checksum of the bot used to identify a specific revision of the bot's $LATEST
  8089  	// version.
  8090  	Checksum *string `locationName:"checksum" type:"string"`
  8091  
  8092  	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
  8093  	// you must specify whether your use of Amazon Lex is related to a website,
  8094  	// program, or other application that is directed or targeted, in whole or in
  8095  	// part, to children under age 13 and subject to the Children's Online Privacy
  8096  	// Protection Act (COPPA) by specifying true or false in the childDirected field.
  8097  	// By specifying true in the childDirected field, you confirm that your use
  8098  	// of Amazon Lex is related to a website, program, or other application that
  8099  	// is directed or targeted, in whole or in part, to children under age 13 and
  8100  	// subject to COPPA. By specifying false in the childDirected field, you confirm
  8101  	// that your use of Amazon Lex is not related to a website, program, or other
  8102  	// application that is directed or targeted, in whole or in part, to children
  8103  	// under age 13 and subject to COPPA. You may not specify a default value for
  8104  	// the childDirected field that does not accurately reflect whether your use
  8105  	// of Amazon Lex is related to a website, program, or other application that
  8106  	// is directed or targeted, in whole or in part, to children under age 13 and
  8107  	// subject to COPPA.
  8108  	//
  8109  	// If your use of Amazon Lex relates to a website, program, or other application
  8110  	// that is directed in whole or in part, to children under age 13, you must
  8111  	// obtain any required verifiable parental consent under COPPA. For information
  8112  	// regarding the use of Amazon Lex in connection with websites, programs, or
  8113  	// other applications that are directed or targeted, in whole or in part, to
  8114  	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
  8115  	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
  8116  
  8117  	// The message Amazon Lex uses when it doesn't understand the user's request.
  8118  	// For more information, see PutBot.
  8119  	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
  8120  
  8121  	// The date that the bot was created.
  8122  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  8123  
  8124  	// A description of the bot.
  8125  	Description *string `locationName:"description" type:"string"`
  8126  
  8127  	// Indicates whether user utterances should be sent to Amazon Comprehend for
  8128  	// sentiment analysis.
  8129  	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
  8130  
  8131  	// Indicates whether the bot uses accuracy improvements. true indicates that
  8132  	// the bot is using the improvements, otherwise, false.
  8133  	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
  8134  
  8135  	// If status is FAILED, Amazon Lex explains why it failed to build the bot.
  8136  	FailureReason *string `locationName:"failureReason" type:"string"`
  8137  
  8138  	// The maximum time in seconds that Amazon Lex retains the data gathered in
  8139  	// a conversation. For more information, see PutBot.
  8140  	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
  8141  
  8142  	// An array of intent objects. For more information, see PutBot.
  8143  	Intents []*Intent `locationName:"intents" type:"list"`
  8144  
  8145  	// The date that the bot was updated. When you create a resource, the creation
  8146  	// date and last updated date are the same.
  8147  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  8148  
  8149  	// The target locale for the bot.
  8150  	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
  8151  
  8152  	// The name of the bot.
  8153  	Name *string `locationName:"name" min:"2" type:"string"`
  8154  
  8155  	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
  8156  	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
  8157  	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
  8158  	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
  8159  	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
  8160  	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
  8161  	// it is configured for the bot.
  8162  	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
  8163  
  8164  	// The status of the bot.
  8165  	//
  8166  	// When the status is BUILDING Amazon Lex is building the bot for testing and
  8167  	// use.
  8168  	//
  8169  	// If the status of the bot is READY_BASIC_TESTING, you can test the bot using
  8170  	// the exact utterances specified in the bot's intents. When the bot is ready
  8171  	// for full testing or to run, the status is READY.
  8172  	//
  8173  	// If there was a problem with building the bot, the status is FAILED and the
  8174  	// failureReason field explains why the bot did not build.
  8175  	//
  8176  	// If the bot was saved but not built, the status is NOT_BUILT.
  8177  	Status *string `locationName:"status" type:"string" enum:"Status"`
  8178  
  8179  	// The version of the bot. For a new bot, the version is always $LATEST.
  8180  	Version *string `locationName:"version" min:"1" type:"string"`
  8181  
  8182  	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
  8183  	// the user. For more information, see PutBot.
  8184  	VoiceId *string `locationName:"voiceId" type:"string"`
  8185  }
  8186  
  8187  // String returns the string representation.
  8188  //
  8189  // API parameter values that are decorated as "sensitive" in the API will not
  8190  // be included in the string output. The member name will be present, but the
  8191  // value will be replaced with "sensitive".
  8192  func (s GetBotOutput) String() string {
  8193  	return awsutil.Prettify(s)
  8194  }
  8195  
  8196  // GoString returns the string representation.
  8197  //
  8198  // API parameter values that are decorated as "sensitive" in the API will not
  8199  // be included in the string output. The member name will be present, but the
  8200  // value will be replaced with "sensitive".
  8201  func (s GetBotOutput) GoString() string {
  8202  	return s.String()
  8203  }
  8204  
  8205  // SetAbortStatement sets the AbortStatement field's value.
  8206  func (s *GetBotOutput) SetAbortStatement(v *Statement) *GetBotOutput {
  8207  	s.AbortStatement = v
  8208  	return s
  8209  }
  8210  
  8211  // SetChecksum sets the Checksum field's value.
  8212  func (s *GetBotOutput) SetChecksum(v string) *GetBotOutput {
  8213  	s.Checksum = &v
  8214  	return s
  8215  }
  8216  
  8217  // SetChildDirected sets the ChildDirected field's value.
  8218  func (s *GetBotOutput) SetChildDirected(v bool) *GetBotOutput {
  8219  	s.ChildDirected = &v
  8220  	return s
  8221  }
  8222  
  8223  // SetClarificationPrompt sets the ClarificationPrompt field's value.
  8224  func (s *GetBotOutput) SetClarificationPrompt(v *Prompt) *GetBotOutput {
  8225  	s.ClarificationPrompt = v
  8226  	return s
  8227  }
  8228  
  8229  // SetCreatedDate sets the CreatedDate field's value.
  8230  func (s *GetBotOutput) SetCreatedDate(v time.Time) *GetBotOutput {
  8231  	s.CreatedDate = &v
  8232  	return s
  8233  }
  8234  
  8235  // SetDescription sets the Description field's value.
  8236  func (s *GetBotOutput) SetDescription(v string) *GetBotOutput {
  8237  	s.Description = &v
  8238  	return s
  8239  }
  8240  
  8241  // SetDetectSentiment sets the DetectSentiment field's value.
  8242  func (s *GetBotOutput) SetDetectSentiment(v bool) *GetBotOutput {
  8243  	s.DetectSentiment = &v
  8244  	return s
  8245  }
  8246  
  8247  // SetEnableModelImprovements sets the EnableModelImprovements field's value.
  8248  func (s *GetBotOutput) SetEnableModelImprovements(v bool) *GetBotOutput {
  8249  	s.EnableModelImprovements = &v
  8250  	return s
  8251  }
  8252  
  8253  // SetFailureReason sets the FailureReason field's value.
  8254  func (s *GetBotOutput) SetFailureReason(v string) *GetBotOutput {
  8255  	s.FailureReason = &v
  8256  	return s
  8257  }
  8258  
  8259  // SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
  8260  func (s *GetBotOutput) SetIdleSessionTTLInSeconds(v int64) *GetBotOutput {
  8261  	s.IdleSessionTTLInSeconds = &v
  8262  	return s
  8263  }
  8264  
  8265  // SetIntents sets the Intents field's value.
  8266  func (s *GetBotOutput) SetIntents(v []*Intent) *GetBotOutput {
  8267  	s.Intents = v
  8268  	return s
  8269  }
  8270  
  8271  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  8272  func (s *GetBotOutput) SetLastUpdatedDate(v time.Time) *GetBotOutput {
  8273  	s.LastUpdatedDate = &v
  8274  	return s
  8275  }
  8276  
  8277  // SetLocale sets the Locale field's value.
  8278  func (s *GetBotOutput) SetLocale(v string) *GetBotOutput {
  8279  	s.Locale = &v
  8280  	return s
  8281  }
  8282  
  8283  // SetName sets the Name field's value.
  8284  func (s *GetBotOutput) SetName(v string) *GetBotOutput {
  8285  	s.Name = &v
  8286  	return s
  8287  }
  8288  
  8289  // SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
  8290  func (s *GetBotOutput) SetNluIntentConfidenceThreshold(v float64) *GetBotOutput {
  8291  	s.NluIntentConfidenceThreshold = &v
  8292  	return s
  8293  }
  8294  
  8295  // SetStatus sets the Status field's value.
  8296  func (s *GetBotOutput) SetStatus(v string) *GetBotOutput {
  8297  	s.Status = &v
  8298  	return s
  8299  }
  8300  
  8301  // SetVersion sets the Version field's value.
  8302  func (s *GetBotOutput) SetVersion(v string) *GetBotOutput {
  8303  	s.Version = &v
  8304  	return s
  8305  }
  8306  
  8307  // SetVoiceId sets the VoiceId field's value.
  8308  func (s *GetBotOutput) SetVoiceId(v string) *GetBotOutput {
  8309  	s.VoiceId = &v
  8310  	return s
  8311  }
  8312  
  8313  type GetBotVersionsInput struct {
  8314  	_ struct{} `type:"structure" nopayload:"true"`
  8315  
  8316  	// The maximum number of bot versions to return in the response. The default
  8317  	// is 10.
  8318  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8319  
  8320  	// The name of the bot for which versions should be returned.
  8321  	//
  8322  	// Name is a required field
  8323  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
  8324  
  8325  	// A pagination token for fetching the next page of bot versions. If the response
  8326  	// to this call is truncated, Amazon Lex returns a pagination token in the response.
  8327  	// To fetch the next page of versions, specify the pagination token in the next
  8328  	// request.
  8329  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8330  }
  8331  
  8332  // String returns the string representation.
  8333  //
  8334  // API parameter values that are decorated as "sensitive" in the API will not
  8335  // be included in the string output. The member name will be present, but the
  8336  // value will be replaced with "sensitive".
  8337  func (s GetBotVersionsInput) String() string {
  8338  	return awsutil.Prettify(s)
  8339  }
  8340  
  8341  // GoString returns the string representation.
  8342  //
  8343  // API parameter values that are decorated as "sensitive" in the API will not
  8344  // be included in the string output. The member name will be present, but the
  8345  // value will be replaced with "sensitive".
  8346  func (s GetBotVersionsInput) GoString() string {
  8347  	return s.String()
  8348  }
  8349  
  8350  // Validate inspects the fields of the type to determine if they are valid.
  8351  func (s *GetBotVersionsInput) Validate() error {
  8352  	invalidParams := request.ErrInvalidParams{Context: "GetBotVersionsInput"}
  8353  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8354  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8355  	}
  8356  	if s.Name == nil {
  8357  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8358  	}
  8359  	if s.Name != nil && len(*s.Name) < 2 {
  8360  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
  8361  	}
  8362  
  8363  	if invalidParams.Len() > 0 {
  8364  		return invalidParams
  8365  	}
  8366  	return nil
  8367  }
  8368  
  8369  // SetMaxResults sets the MaxResults field's value.
  8370  func (s *GetBotVersionsInput) SetMaxResults(v int64) *GetBotVersionsInput {
  8371  	s.MaxResults = &v
  8372  	return s
  8373  }
  8374  
  8375  // SetName sets the Name field's value.
  8376  func (s *GetBotVersionsInput) SetName(v string) *GetBotVersionsInput {
  8377  	s.Name = &v
  8378  	return s
  8379  }
  8380  
  8381  // SetNextToken sets the NextToken field's value.
  8382  func (s *GetBotVersionsInput) SetNextToken(v string) *GetBotVersionsInput {
  8383  	s.NextToken = &v
  8384  	return s
  8385  }
  8386  
  8387  type GetBotVersionsOutput struct {
  8388  	_ struct{} `type:"structure"`
  8389  
  8390  	// An array of BotMetadata objects, one for each numbered version of the bot
  8391  	// plus one for the $LATEST version.
  8392  	Bots []*BotMetadata `locationName:"bots" type:"list"`
  8393  
  8394  	// A pagination token for fetching the next page of bot versions. If the response
  8395  	// to this call is truncated, Amazon Lex returns a pagination token in the response.
  8396  	// To fetch the next page of versions, specify the pagination token in the next
  8397  	// request.
  8398  	NextToken *string `locationName:"nextToken" type:"string"`
  8399  }
  8400  
  8401  // String returns the string representation.
  8402  //
  8403  // API parameter values that are decorated as "sensitive" in the API will not
  8404  // be included in the string output. The member name will be present, but the
  8405  // value will be replaced with "sensitive".
  8406  func (s GetBotVersionsOutput) String() string {
  8407  	return awsutil.Prettify(s)
  8408  }
  8409  
  8410  // GoString returns the string representation.
  8411  //
  8412  // API parameter values that are decorated as "sensitive" in the API will not
  8413  // be included in the string output. The member name will be present, but the
  8414  // value will be replaced with "sensitive".
  8415  func (s GetBotVersionsOutput) GoString() string {
  8416  	return s.String()
  8417  }
  8418  
  8419  // SetBots sets the Bots field's value.
  8420  func (s *GetBotVersionsOutput) SetBots(v []*BotMetadata) *GetBotVersionsOutput {
  8421  	s.Bots = v
  8422  	return s
  8423  }
  8424  
  8425  // SetNextToken sets the NextToken field's value.
  8426  func (s *GetBotVersionsOutput) SetNextToken(v string) *GetBotVersionsOutput {
  8427  	s.NextToken = &v
  8428  	return s
  8429  }
  8430  
  8431  type GetBotsInput struct {
  8432  	_ struct{} `type:"structure" nopayload:"true"`
  8433  
  8434  	// The maximum number of bots to return in the response that the request will
  8435  	// return. The default is 10.
  8436  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8437  
  8438  	// Substring to match in bot names. A bot will be returned if any part of its
  8439  	// name matches the substring. For example, "xyz" matches both "xyzabc" and
  8440  	// "abcxyz."
  8441  	NameContains *string `location:"querystring" locationName:"nameContains" min:"2" type:"string"`
  8442  
  8443  	// A pagination token that fetches the next page of bots. If the response to
  8444  	// this call is truncated, Amazon Lex returns a pagination token in the response.
  8445  	// To fetch the next page of bots, specify the pagination token in the next
  8446  	// request.
  8447  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8448  }
  8449  
  8450  // String returns the string representation.
  8451  //
  8452  // API parameter values that are decorated as "sensitive" in the API will not
  8453  // be included in the string output. The member name will be present, but the
  8454  // value will be replaced with "sensitive".
  8455  func (s GetBotsInput) String() string {
  8456  	return awsutil.Prettify(s)
  8457  }
  8458  
  8459  // GoString returns the string representation.
  8460  //
  8461  // API parameter values that are decorated as "sensitive" in the API will not
  8462  // be included in the string output. The member name will be present, but the
  8463  // value will be replaced with "sensitive".
  8464  func (s GetBotsInput) GoString() string {
  8465  	return s.String()
  8466  }
  8467  
  8468  // Validate inspects the fields of the type to determine if they are valid.
  8469  func (s *GetBotsInput) Validate() error {
  8470  	invalidParams := request.ErrInvalidParams{Context: "GetBotsInput"}
  8471  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8472  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8473  	}
  8474  	if s.NameContains != nil && len(*s.NameContains) < 2 {
  8475  		invalidParams.Add(request.NewErrParamMinLen("NameContains", 2))
  8476  	}
  8477  
  8478  	if invalidParams.Len() > 0 {
  8479  		return invalidParams
  8480  	}
  8481  	return nil
  8482  }
  8483  
  8484  // SetMaxResults sets the MaxResults field's value.
  8485  func (s *GetBotsInput) SetMaxResults(v int64) *GetBotsInput {
  8486  	s.MaxResults = &v
  8487  	return s
  8488  }
  8489  
  8490  // SetNameContains sets the NameContains field's value.
  8491  func (s *GetBotsInput) SetNameContains(v string) *GetBotsInput {
  8492  	s.NameContains = &v
  8493  	return s
  8494  }
  8495  
  8496  // SetNextToken sets the NextToken field's value.
  8497  func (s *GetBotsInput) SetNextToken(v string) *GetBotsInput {
  8498  	s.NextToken = &v
  8499  	return s
  8500  }
  8501  
  8502  type GetBotsOutput struct {
  8503  	_ struct{} `type:"structure"`
  8504  
  8505  	// An array of botMetadata objects, with one entry for each bot.
  8506  	Bots []*BotMetadata `locationName:"bots" type:"list"`
  8507  
  8508  	// If the response is truncated, it includes a pagination token that you can
  8509  	// specify in your next request to fetch the next page of bots.
  8510  	NextToken *string `locationName:"nextToken" type:"string"`
  8511  }
  8512  
  8513  // String returns the string representation.
  8514  //
  8515  // API parameter values that are decorated as "sensitive" in the API will not
  8516  // be included in the string output. The member name will be present, but the
  8517  // value will be replaced with "sensitive".
  8518  func (s GetBotsOutput) String() string {
  8519  	return awsutil.Prettify(s)
  8520  }
  8521  
  8522  // GoString returns the string representation.
  8523  //
  8524  // API parameter values that are decorated as "sensitive" in the API will not
  8525  // be included in the string output. The member name will be present, but the
  8526  // value will be replaced with "sensitive".
  8527  func (s GetBotsOutput) GoString() string {
  8528  	return s.String()
  8529  }
  8530  
  8531  // SetBots sets the Bots field's value.
  8532  func (s *GetBotsOutput) SetBots(v []*BotMetadata) *GetBotsOutput {
  8533  	s.Bots = v
  8534  	return s
  8535  }
  8536  
  8537  // SetNextToken sets the NextToken field's value.
  8538  func (s *GetBotsOutput) SetNextToken(v string) *GetBotsOutput {
  8539  	s.NextToken = &v
  8540  	return s
  8541  }
  8542  
  8543  type GetBuiltinIntentInput struct {
  8544  	_ struct{} `type:"structure" nopayload:"true"`
  8545  
  8546  	// The unique identifier for a built-in intent. To find the signature for an
  8547  	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
  8548  	// in the Alexa Skills Kit.
  8549  	//
  8550  	// Signature is a required field
  8551  	Signature *string `location:"uri" locationName:"signature" type:"string" required:"true"`
  8552  }
  8553  
  8554  // String returns the string representation.
  8555  //
  8556  // API parameter values that are decorated as "sensitive" in the API will not
  8557  // be included in the string output. The member name will be present, but the
  8558  // value will be replaced with "sensitive".
  8559  func (s GetBuiltinIntentInput) String() string {
  8560  	return awsutil.Prettify(s)
  8561  }
  8562  
  8563  // GoString returns the string representation.
  8564  //
  8565  // API parameter values that are decorated as "sensitive" in the API will not
  8566  // be included in the string output. The member name will be present, but the
  8567  // value will be replaced with "sensitive".
  8568  func (s GetBuiltinIntentInput) GoString() string {
  8569  	return s.String()
  8570  }
  8571  
  8572  // Validate inspects the fields of the type to determine if they are valid.
  8573  func (s *GetBuiltinIntentInput) Validate() error {
  8574  	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentInput"}
  8575  	if s.Signature == nil {
  8576  		invalidParams.Add(request.NewErrParamRequired("Signature"))
  8577  	}
  8578  	if s.Signature != nil && len(*s.Signature) < 1 {
  8579  		invalidParams.Add(request.NewErrParamMinLen("Signature", 1))
  8580  	}
  8581  
  8582  	if invalidParams.Len() > 0 {
  8583  		return invalidParams
  8584  	}
  8585  	return nil
  8586  }
  8587  
  8588  // SetSignature sets the Signature field's value.
  8589  func (s *GetBuiltinIntentInput) SetSignature(v string) *GetBuiltinIntentInput {
  8590  	s.Signature = &v
  8591  	return s
  8592  }
  8593  
  8594  type GetBuiltinIntentOutput struct {
  8595  	_ struct{} `type:"structure"`
  8596  
  8597  	// The unique identifier for a built-in intent.
  8598  	Signature *string `locationName:"signature" type:"string"`
  8599  
  8600  	// An array of BuiltinIntentSlot objects, one entry for each slot type in the
  8601  	// intent.
  8602  	Slots []*BuiltinIntentSlot `locationName:"slots" type:"list"`
  8603  
  8604  	// A list of locales that the intent supports.
  8605  	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
  8606  }
  8607  
  8608  // String returns the string representation.
  8609  //
  8610  // API parameter values that are decorated as "sensitive" in the API will not
  8611  // be included in the string output. The member name will be present, but the
  8612  // value will be replaced with "sensitive".
  8613  func (s GetBuiltinIntentOutput) String() string {
  8614  	return awsutil.Prettify(s)
  8615  }
  8616  
  8617  // GoString returns the string representation.
  8618  //
  8619  // API parameter values that are decorated as "sensitive" in the API will not
  8620  // be included in the string output. The member name will be present, but the
  8621  // value will be replaced with "sensitive".
  8622  func (s GetBuiltinIntentOutput) GoString() string {
  8623  	return s.String()
  8624  }
  8625  
  8626  // SetSignature sets the Signature field's value.
  8627  func (s *GetBuiltinIntentOutput) SetSignature(v string) *GetBuiltinIntentOutput {
  8628  	s.Signature = &v
  8629  	return s
  8630  }
  8631  
  8632  // SetSlots sets the Slots field's value.
  8633  func (s *GetBuiltinIntentOutput) SetSlots(v []*BuiltinIntentSlot) *GetBuiltinIntentOutput {
  8634  	s.Slots = v
  8635  	return s
  8636  }
  8637  
  8638  // SetSupportedLocales sets the SupportedLocales field's value.
  8639  func (s *GetBuiltinIntentOutput) SetSupportedLocales(v []*string) *GetBuiltinIntentOutput {
  8640  	s.SupportedLocales = v
  8641  	return s
  8642  }
  8643  
  8644  type GetBuiltinIntentsInput struct {
  8645  	_ struct{} `type:"structure" nopayload:"true"`
  8646  
  8647  	// A list of locales that the intent supports.
  8648  	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
  8649  
  8650  	// The maximum number of intents to return in the response. The default is 10.
  8651  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8652  
  8653  	// A pagination token that fetches the next page of intents. If this API call
  8654  	// is truncated, Amazon Lex returns a pagination token in the response. To fetch
  8655  	// the next page of intents, use the pagination token in the next request.
  8656  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8657  
  8658  	// Substring to match in built-in intent signatures. An intent will be returned
  8659  	// if any part of its signature matches the substring. For example, "xyz" matches
  8660  	// both "xyzabc" and "abcxyz." To find the signature for an intent, see Standard
  8661  	// Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
  8662  	// in the Alexa Skills Kit.
  8663  	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
  8664  }
  8665  
  8666  // String returns the string representation.
  8667  //
  8668  // API parameter values that are decorated as "sensitive" in the API will not
  8669  // be included in the string output. The member name will be present, but the
  8670  // value will be replaced with "sensitive".
  8671  func (s GetBuiltinIntentsInput) String() string {
  8672  	return awsutil.Prettify(s)
  8673  }
  8674  
  8675  // GoString returns the string representation.
  8676  //
  8677  // API parameter values that are decorated as "sensitive" in the API will not
  8678  // be included in the string output. The member name will be present, but the
  8679  // value will be replaced with "sensitive".
  8680  func (s GetBuiltinIntentsInput) GoString() string {
  8681  	return s.String()
  8682  }
  8683  
  8684  // Validate inspects the fields of the type to determine if they are valid.
  8685  func (s *GetBuiltinIntentsInput) Validate() error {
  8686  	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentsInput"}
  8687  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8688  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8689  	}
  8690  
  8691  	if invalidParams.Len() > 0 {
  8692  		return invalidParams
  8693  	}
  8694  	return nil
  8695  }
  8696  
  8697  // SetLocale sets the Locale field's value.
  8698  func (s *GetBuiltinIntentsInput) SetLocale(v string) *GetBuiltinIntentsInput {
  8699  	s.Locale = &v
  8700  	return s
  8701  }
  8702  
  8703  // SetMaxResults sets the MaxResults field's value.
  8704  func (s *GetBuiltinIntentsInput) SetMaxResults(v int64) *GetBuiltinIntentsInput {
  8705  	s.MaxResults = &v
  8706  	return s
  8707  }
  8708  
  8709  // SetNextToken sets the NextToken field's value.
  8710  func (s *GetBuiltinIntentsInput) SetNextToken(v string) *GetBuiltinIntentsInput {
  8711  	s.NextToken = &v
  8712  	return s
  8713  }
  8714  
  8715  // SetSignatureContains sets the SignatureContains field's value.
  8716  func (s *GetBuiltinIntentsInput) SetSignatureContains(v string) *GetBuiltinIntentsInput {
  8717  	s.SignatureContains = &v
  8718  	return s
  8719  }
  8720  
  8721  type GetBuiltinIntentsOutput struct {
  8722  	_ struct{} `type:"structure"`
  8723  
  8724  	// An array of builtinIntentMetadata objects, one for each intent in the response.
  8725  	Intents []*BuiltinIntentMetadata `locationName:"intents" type:"list"`
  8726  
  8727  	// A pagination token that fetches the next page of intents. If the response
  8728  	// to this API call is truncated, Amazon Lex returns a pagination token in the
  8729  	// response. To fetch the next page of intents, specify the pagination token
  8730  	// in the next request.
  8731  	NextToken *string `locationName:"nextToken" type:"string"`
  8732  }
  8733  
  8734  // String returns the string representation.
  8735  //
  8736  // API parameter values that are decorated as "sensitive" in the API will not
  8737  // be included in the string output. The member name will be present, but the
  8738  // value will be replaced with "sensitive".
  8739  func (s GetBuiltinIntentsOutput) String() string {
  8740  	return awsutil.Prettify(s)
  8741  }
  8742  
  8743  // GoString returns the string representation.
  8744  //
  8745  // API parameter values that are decorated as "sensitive" in the API will not
  8746  // be included in the string output. The member name will be present, but the
  8747  // value will be replaced with "sensitive".
  8748  func (s GetBuiltinIntentsOutput) GoString() string {
  8749  	return s.String()
  8750  }
  8751  
  8752  // SetIntents sets the Intents field's value.
  8753  func (s *GetBuiltinIntentsOutput) SetIntents(v []*BuiltinIntentMetadata) *GetBuiltinIntentsOutput {
  8754  	s.Intents = v
  8755  	return s
  8756  }
  8757  
  8758  // SetNextToken sets the NextToken field's value.
  8759  func (s *GetBuiltinIntentsOutput) SetNextToken(v string) *GetBuiltinIntentsOutput {
  8760  	s.NextToken = &v
  8761  	return s
  8762  }
  8763  
  8764  type GetBuiltinSlotTypesInput struct {
  8765  	_ struct{} `type:"structure" nopayload:"true"`
  8766  
  8767  	// A list of locales that the slot type supports.
  8768  	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
  8769  
  8770  	// The maximum number of slot types to return in the response. The default is
  8771  	// 10.
  8772  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8773  
  8774  	// A pagination token that fetches the next page of slot types. If the response
  8775  	// to this API call is truncated, Amazon Lex returns a pagination token in the
  8776  	// response. To fetch the next page of slot types, specify the pagination token
  8777  	// in the next request.
  8778  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8779  
  8780  	// Substring to match in built-in slot type signatures. A slot type will be
  8781  	// returned if any part of its signature matches the substring. For example,
  8782  	// "xyz" matches both "xyzabc" and "abcxyz."
  8783  	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
  8784  }
  8785  
  8786  // String returns the string representation.
  8787  //
  8788  // API parameter values that are decorated as "sensitive" in the API will not
  8789  // be included in the string output. The member name will be present, but the
  8790  // value will be replaced with "sensitive".
  8791  func (s GetBuiltinSlotTypesInput) String() string {
  8792  	return awsutil.Prettify(s)
  8793  }
  8794  
  8795  // GoString returns the string representation.
  8796  //
  8797  // API parameter values that are decorated as "sensitive" in the API will not
  8798  // be included in the string output. The member name will be present, but the
  8799  // value will be replaced with "sensitive".
  8800  func (s GetBuiltinSlotTypesInput) GoString() string {
  8801  	return s.String()
  8802  }
  8803  
  8804  // Validate inspects the fields of the type to determine if they are valid.
  8805  func (s *GetBuiltinSlotTypesInput) Validate() error {
  8806  	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinSlotTypesInput"}
  8807  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8808  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8809  	}
  8810  
  8811  	if invalidParams.Len() > 0 {
  8812  		return invalidParams
  8813  	}
  8814  	return nil
  8815  }
  8816  
  8817  // SetLocale sets the Locale field's value.
  8818  func (s *GetBuiltinSlotTypesInput) SetLocale(v string) *GetBuiltinSlotTypesInput {
  8819  	s.Locale = &v
  8820  	return s
  8821  }
  8822  
  8823  // SetMaxResults sets the MaxResults field's value.
  8824  func (s *GetBuiltinSlotTypesInput) SetMaxResults(v int64) *GetBuiltinSlotTypesInput {
  8825  	s.MaxResults = &v
  8826  	return s
  8827  }
  8828  
  8829  // SetNextToken sets the NextToken field's value.
  8830  func (s *GetBuiltinSlotTypesInput) SetNextToken(v string) *GetBuiltinSlotTypesInput {
  8831  	s.NextToken = &v
  8832  	return s
  8833  }
  8834  
  8835  // SetSignatureContains sets the SignatureContains field's value.
  8836  func (s *GetBuiltinSlotTypesInput) SetSignatureContains(v string) *GetBuiltinSlotTypesInput {
  8837  	s.SignatureContains = &v
  8838  	return s
  8839  }
  8840  
  8841  type GetBuiltinSlotTypesOutput struct {
  8842  	_ struct{} `type:"structure"`
  8843  
  8844  	// If the response is truncated, the response includes a pagination token that
  8845  	// you can use in your next request to fetch the next page of slot types.
  8846  	NextToken *string `locationName:"nextToken" type:"string"`
  8847  
  8848  	// An array of BuiltInSlotTypeMetadata objects, one entry for each slot type
  8849  	// returned.
  8850  	SlotTypes []*BuiltinSlotTypeMetadata `locationName:"slotTypes" type:"list"`
  8851  }
  8852  
  8853  // String returns the string representation.
  8854  //
  8855  // API parameter values that are decorated as "sensitive" in the API will not
  8856  // be included in the string output. The member name will be present, but the
  8857  // value will be replaced with "sensitive".
  8858  func (s GetBuiltinSlotTypesOutput) String() string {
  8859  	return awsutil.Prettify(s)
  8860  }
  8861  
  8862  // GoString returns the string representation.
  8863  //
  8864  // API parameter values that are decorated as "sensitive" in the API will not
  8865  // be included in the string output. The member name will be present, but the
  8866  // value will be replaced with "sensitive".
  8867  func (s GetBuiltinSlotTypesOutput) GoString() string {
  8868  	return s.String()
  8869  }
  8870  
  8871  // SetNextToken sets the NextToken field's value.
  8872  func (s *GetBuiltinSlotTypesOutput) SetNextToken(v string) *GetBuiltinSlotTypesOutput {
  8873  	s.NextToken = &v
  8874  	return s
  8875  }
  8876  
  8877  // SetSlotTypes sets the SlotTypes field's value.
  8878  func (s *GetBuiltinSlotTypesOutput) SetSlotTypes(v []*BuiltinSlotTypeMetadata) *GetBuiltinSlotTypesOutput {
  8879  	s.SlotTypes = v
  8880  	return s
  8881  }
  8882  
  8883  type GetExportInput struct {
  8884  	_ struct{} `type:"structure" nopayload:"true"`
  8885  
  8886  	// The format of the exported data.
  8887  	//
  8888  	// ExportType is a required field
  8889  	ExportType *string `location:"querystring" locationName:"exportType" type:"string" required:"true" enum:"ExportType"`
  8890  
  8891  	// The name of the bot to export.
  8892  	//
  8893  	// Name is a required field
  8894  	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" required:"true"`
  8895  
  8896  	// The type of resource to export.
  8897  	//
  8898  	// ResourceType is a required field
  8899  	ResourceType *string `location:"querystring" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  8900  
  8901  	// The version of the bot to export.
  8902  	//
  8903  	// Version is a required field
  8904  	Version *string `location:"querystring" locationName:"version" min:"1" type:"string" required:"true"`
  8905  }
  8906  
  8907  // String returns the string representation.
  8908  //
  8909  // API parameter values that are decorated as "sensitive" in the API will not
  8910  // be included in the string output. The member name will be present, but the
  8911  // value will be replaced with "sensitive".
  8912  func (s GetExportInput) String() string {
  8913  	return awsutil.Prettify(s)
  8914  }
  8915  
  8916  // GoString returns the string representation.
  8917  //
  8918  // API parameter values that are decorated as "sensitive" in the API will not
  8919  // be included in the string output. The member name will be present, but the
  8920  // value will be replaced with "sensitive".
  8921  func (s GetExportInput) GoString() string {
  8922  	return s.String()
  8923  }
  8924  
  8925  // Validate inspects the fields of the type to determine if they are valid.
  8926  func (s *GetExportInput) Validate() error {
  8927  	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
  8928  	if s.ExportType == nil {
  8929  		invalidParams.Add(request.NewErrParamRequired("ExportType"))
  8930  	}
  8931  	if s.Name == nil {
  8932  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8933  	}
  8934  	if s.Name != nil && len(*s.Name) < 1 {
  8935  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  8936  	}
  8937  	if s.ResourceType == nil {
  8938  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
  8939  	}
  8940  	if s.Version == nil {
  8941  		invalidParams.Add(request.NewErrParamRequired("Version"))
  8942  	}
  8943  	if s.Version != nil && len(*s.Version) < 1 {
  8944  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
  8945  	}
  8946  
  8947  	if invalidParams.Len() > 0 {
  8948  		return invalidParams
  8949  	}
  8950  	return nil
  8951  }
  8952  
  8953  // SetExportType sets the ExportType field's value.
  8954  func (s *GetExportInput) SetExportType(v string) *GetExportInput {
  8955  	s.ExportType = &v
  8956  	return s
  8957  }
  8958  
  8959  // SetName sets the Name field's value.
  8960  func (s *GetExportInput) SetName(v string) *GetExportInput {
  8961  	s.Name = &v
  8962  	return s
  8963  }
  8964  
  8965  // SetResourceType sets the ResourceType field's value.
  8966  func (s *GetExportInput) SetResourceType(v string) *GetExportInput {
  8967  	s.ResourceType = &v
  8968  	return s
  8969  }
  8970  
  8971  // SetVersion sets the Version field's value.
  8972  func (s *GetExportInput) SetVersion(v string) *GetExportInput {
  8973  	s.Version = &v
  8974  	return s
  8975  }
  8976  
  8977  type GetExportOutput struct {
  8978  	_ struct{} `type:"structure"`
  8979  
  8980  	// The status of the export.
  8981  	//
  8982  	//    * IN_PROGRESS - The export is in progress.
  8983  	//
  8984  	//    * READY - The export is complete.
  8985  	//
  8986  	//    * FAILED - The export could not be completed.
  8987  	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
  8988  
  8989  	// The format of the exported data.
  8990  	ExportType *string `locationName:"exportType" type:"string" enum:"ExportType"`
  8991  
  8992  	// If status is FAILED, Amazon Lex provides the reason that it failed to export
  8993  	// the resource.
  8994  	FailureReason *string `locationName:"failureReason" type:"string"`
  8995  
  8996  	// The name of the bot being exported.
  8997  	Name *string `locationName:"name" min:"1" type:"string"`
  8998  
  8999  	// The type of the exported resource.
  9000  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
  9001  
  9002  	// An S3 pre-signed URL that provides the location of the exported resource.
  9003  	// The exported resource is a ZIP archive that contains the exported resource
  9004  	// in JSON format. The structure of the archive may change. Your code should
  9005  	// not rely on the archive structure.
  9006  	Url *string `locationName:"url" type:"string"`
  9007  
  9008  	// The version of the bot being exported.
  9009  	Version *string `locationName:"version" min:"1" type:"string"`
  9010  }
  9011  
  9012  // String returns the string representation.
  9013  //
  9014  // API parameter values that are decorated as "sensitive" in the API will not
  9015  // be included in the string output. The member name will be present, but the
  9016  // value will be replaced with "sensitive".
  9017  func (s GetExportOutput) String() string {
  9018  	return awsutil.Prettify(s)
  9019  }
  9020  
  9021  // GoString returns the string representation.
  9022  //
  9023  // API parameter values that are decorated as "sensitive" in the API will not
  9024  // be included in the string output. The member name will be present, but the
  9025  // value will be replaced with "sensitive".
  9026  func (s GetExportOutput) GoString() string {
  9027  	return s.String()
  9028  }
  9029  
  9030  // SetExportStatus sets the ExportStatus field's value.
  9031  func (s *GetExportOutput) SetExportStatus(v string) *GetExportOutput {
  9032  	s.ExportStatus = &v
  9033  	return s
  9034  }
  9035  
  9036  // SetExportType sets the ExportType field's value.
  9037  func (s *GetExportOutput) SetExportType(v string) *GetExportOutput {
  9038  	s.ExportType = &v
  9039  	return s
  9040  }
  9041  
  9042  // SetFailureReason sets the FailureReason field's value.
  9043  func (s *GetExportOutput) SetFailureReason(v string) *GetExportOutput {
  9044  	s.FailureReason = &v
  9045  	return s
  9046  }
  9047  
  9048  // SetName sets the Name field's value.
  9049  func (s *GetExportOutput) SetName(v string) *GetExportOutput {
  9050  	s.Name = &v
  9051  	return s
  9052  }
  9053  
  9054  // SetResourceType sets the ResourceType field's value.
  9055  func (s *GetExportOutput) SetResourceType(v string) *GetExportOutput {
  9056  	s.ResourceType = &v
  9057  	return s
  9058  }
  9059  
  9060  // SetUrl sets the Url field's value.
  9061  func (s *GetExportOutput) SetUrl(v string) *GetExportOutput {
  9062  	s.Url = &v
  9063  	return s
  9064  }
  9065  
  9066  // SetVersion sets the Version field's value.
  9067  func (s *GetExportOutput) SetVersion(v string) *GetExportOutput {
  9068  	s.Version = &v
  9069  	return s
  9070  }
  9071  
  9072  type GetImportInput struct {
  9073  	_ struct{} `type:"structure" nopayload:"true"`
  9074  
  9075  	// The identifier of the import job information to return.
  9076  	//
  9077  	// ImportId is a required field
  9078  	ImportId *string `location:"uri" locationName:"importId" type:"string" required:"true"`
  9079  }
  9080  
  9081  // String returns the string representation.
  9082  //
  9083  // API parameter values that are decorated as "sensitive" in the API will not
  9084  // be included in the string output. The member name will be present, but the
  9085  // value will be replaced with "sensitive".
  9086  func (s GetImportInput) String() string {
  9087  	return awsutil.Prettify(s)
  9088  }
  9089  
  9090  // GoString returns the string representation.
  9091  //
  9092  // API parameter values that are decorated as "sensitive" in the API will not
  9093  // be included in the string output. The member name will be present, but the
  9094  // value will be replaced with "sensitive".
  9095  func (s GetImportInput) GoString() string {
  9096  	return s.String()
  9097  }
  9098  
  9099  // Validate inspects the fields of the type to determine if they are valid.
  9100  func (s *GetImportInput) Validate() error {
  9101  	invalidParams := request.ErrInvalidParams{Context: "GetImportInput"}
  9102  	if s.ImportId == nil {
  9103  		invalidParams.Add(request.NewErrParamRequired("ImportId"))
  9104  	}
  9105  	if s.ImportId != nil && len(*s.ImportId) < 1 {
  9106  		invalidParams.Add(request.NewErrParamMinLen("ImportId", 1))
  9107  	}
  9108  
  9109  	if invalidParams.Len() > 0 {
  9110  		return invalidParams
  9111  	}
  9112  	return nil
  9113  }
  9114  
  9115  // SetImportId sets the ImportId field's value.
  9116  func (s *GetImportInput) SetImportId(v string) *GetImportInput {
  9117  	s.ImportId = &v
  9118  	return s
  9119  }
  9120  
  9121  type GetImportOutput struct {
  9122  	_ struct{} `type:"structure"`
  9123  
  9124  	// A timestamp for the date and time that the import job was created.
  9125  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  9126  
  9127  	// A string that describes why an import job failed to complete.
  9128  	FailureReason []*string `locationName:"failureReason" type:"list"`
  9129  
  9130  	// The identifier for the specific import job.
  9131  	ImportId *string `locationName:"importId" type:"string"`
  9132  
  9133  	// The status of the import job. If the status is FAILED, you can get the reason
  9134  	// for the failure from the failureReason field.
  9135  	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
  9136  
  9137  	// The action taken when there was a conflict between an existing resource and
  9138  	// a resource in the import file.
  9139  	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
  9140  
  9141  	// The name given to the import job.
  9142  	Name *string `locationName:"name" min:"1" type:"string"`
  9143  
  9144  	// The type of resource imported.
  9145  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
  9146  }
  9147  
  9148  // String returns the string representation.
  9149  //
  9150  // API parameter values that are decorated as "sensitive" in the API will not
  9151  // be included in the string output. The member name will be present, but the
  9152  // value will be replaced with "sensitive".
  9153  func (s GetImportOutput) String() string {
  9154  	return awsutil.Prettify(s)
  9155  }
  9156  
  9157  // GoString returns the string representation.
  9158  //
  9159  // API parameter values that are decorated as "sensitive" in the API will not
  9160  // be included in the string output. The member name will be present, but the
  9161  // value will be replaced with "sensitive".
  9162  func (s GetImportOutput) GoString() string {
  9163  	return s.String()
  9164  }
  9165  
  9166  // SetCreatedDate sets the CreatedDate field's value.
  9167  func (s *GetImportOutput) SetCreatedDate(v time.Time) *GetImportOutput {
  9168  	s.CreatedDate = &v
  9169  	return s
  9170  }
  9171  
  9172  // SetFailureReason sets the FailureReason field's value.
  9173  func (s *GetImportOutput) SetFailureReason(v []*string) *GetImportOutput {
  9174  	s.FailureReason = v
  9175  	return s
  9176  }
  9177  
  9178  // SetImportId sets the ImportId field's value.
  9179  func (s *GetImportOutput) SetImportId(v string) *GetImportOutput {
  9180  	s.ImportId = &v
  9181  	return s
  9182  }
  9183  
  9184  // SetImportStatus sets the ImportStatus field's value.
  9185  func (s *GetImportOutput) SetImportStatus(v string) *GetImportOutput {
  9186  	s.ImportStatus = &v
  9187  	return s
  9188  }
  9189  
  9190  // SetMergeStrategy sets the MergeStrategy field's value.
  9191  func (s *GetImportOutput) SetMergeStrategy(v string) *GetImportOutput {
  9192  	s.MergeStrategy = &v
  9193  	return s
  9194  }
  9195  
  9196  // SetName sets the Name field's value.
  9197  func (s *GetImportOutput) SetName(v string) *GetImportOutput {
  9198  	s.Name = &v
  9199  	return s
  9200  }
  9201  
  9202  // SetResourceType sets the ResourceType field's value.
  9203  func (s *GetImportOutput) SetResourceType(v string) *GetImportOutput {
  9204  	s.ResourceType = &v
  9205  	return s
  9206  }
  9207  
  9208  type GetIntentInput struct {
  9209  	_ struct{} `type:"structure" nopayload:"true"`
  9210  
  9211  	// The name of the intent. The name is case sensitive.
  9212  	//
  9213  	// Name is a required field
  9214  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  9215  
  9216  	// The version of the intent.
  9217  	//
  9218  	// Version is a required field
  9219  	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
  9220  }
  9221  
  9222  // String returns the string representation.
  9223  //
  9224  // API parameter values that are decorated as "sensitive" in the API will not
  9225  // be included in the string output. The member name will be present, but the
  9226  // value will be replaced with "sensitive".
  9227  func (s GetIntentInput) String() string {
  9228  	return awsutil.Prettify(s)
  9229  }
  9230  
  9231  // GoString returns the string representation.
  9232  //
  9233  // API parameter values that are decorated as "sensitive" in the API will not
  9234  // be included in the string output. The member name will be present, but the
  9235  // value will be replaced with "sensitive".
  9236  func (s GetIntentInput) GoString() string {
  9237  	return s.String()
  9238  }
  9239  
  9240  // Validate inspects the fields of the type to determine if they are valid.
  9241  func (s *GetIntentInput) Validate() error {
  9242  	invalidParams := request.ErrInvalidParams{Context: "GetIntentInput"}
  9243  	if s.Name == nil {
  9244  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9245  	}
  9246  	if s.Name != nil && len(*s.Name) < 1 {
  9247  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  9248  	}
  9249  	if s.Version == nil {
  9250  		invalidParams.Add(request.NewErrParamRequired("Version"))
  9251  	}
  9252  	if s.Version != nil && len(*s.Version) < 1 {
  9253  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
  9254  	}
  9255  
  9256  	if invalidParams.Len() > 0 {
  9257  		return invalidParams
  9258  	}
  9259  	return nil
  9260  }
  9261  
  9262  // SetName sets the Name field's value.
  9263  func (s *GetIntentInput) SetName(v string) *GetIntentInput {
  9264  	s.Name = &v
  9265  	return s
  9266  }
  9267  
  9268  // SetVersion sets the Version field's value.
  9269  func (s *GetIntentInput) SetVersion(v string) *GetIntentInput {
  9270  	s.Version = &v
  9271  	return s
  9272  }
  9273  
  9274  type GetIntentOutput struct {
  9275  	_ struct{} `type:"structure"`
  9276  
  9277  	// Checksum of the intent.
  9278  	Checksum *string `locationName:"checksum" type:"string"`
  9279  
  9280  	// After the Lambda function specified in the fulfillmentActivity element fulfills
  9281  	// the intent, Amazon Lex conveys this statement to the user.
  9282  	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
  9283  
  9284  	// If defined in the bot, Amazon Lex uses prompt to confirm the intent before
  9285  	// fulfilling the user's request. For more information, see PutIntent.
  9286  	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
  9287  
  9288  	// The date that the intent was created.
  9289  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
  9290  
  9291  	// A description of the intent.
  9292  	Description *string `locationName:"description" type:"string"`
  9293  
  9294  	// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for
  9295  	// each user input. For more information, see PutIntent.
  9296  	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
  9297  
  9298  	// If defined in the bot, Amazon Lex uses this prompt to solicit additional
  9299  	// user activity after the intent is fulfilled. For more information, see PutIntent.
  9300  	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
  9301  
  9302  	// Describes how the intent is fulfilled. For more information, see PutIntent.
  9303  	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
  9304  
  9305  	// An array of InputContext objects that lists the contexts that must be active
  9306  	// for Amazon Lex to choose the intent in a conversation with the user.
  9307  	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
  9308  
  9309  	// Configuration information, if any, to connect to an Amazon Kendra index with
  9310  	// the AMAZON.KendraSearchIntent intent.
  9311  	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
  9312  
  9313  	// The date that the intent was updated. When you create a resource, the creation
  9314  	// date and the last updated date are the same.
  9315  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
  9316  
  9317  	// The name of the intent.
  9318  	Name *string `locationName:"name" min:"1" type:"string"`
  9319  
  9320  	// An array of OutputContext objects that lists the contexts that the intent
  9321  	// activates when the intent is fulfilled.
  9322  	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
  9323  
  9324  	// A unique identifier for a built-in intent.
  9325  	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
  9326  
  9327  	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
  9328  	// Lex responds with this statement to acknowledge that the intent was canceled.
  9329  	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
  9330  
  9331  	// An array of sample utterances configured for the intent.
  9332  	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
  9333  
  9334  	// An array of intent slots configured for the intent.
  9335  	Slots []*Slot `locationName:"slots" type:"list"`
  9336  
  9337  	// The version of the intent.
  9338  	Version *string `locationName:"version" min:"1" type:"string"`
  9339  }
  9340  
  9341  // String returns the string representation.
  9342  //
  9343  // API parameter values that are decorated as "sensitive" in the API will not
  9344  // be included in the string output. The member name will be present, but the
  9345  // value will be replaced with "sensitive".
  9346  func (s GetIntentOutput) String() string {
  9347  	return awsutil.Prettify(s)
  9348  }
  9349  
  9350  // GoString returns the string representation.
  9351  //
  9352  // API parameter values that are decorated as "sensitive" in the API will not
  9353  // be included in the string output. The member name will be present, but the
  9354  // value will be replaced with "sensitive".
  9355  func (s GetIntentOutput) GoString() string {
  9356  	return s.String()
  9357  }
  9358  
  9359  // SetChecksum sets the Checksum field's value.
  9360  func (s *GetIntentOutput) SetChecksum(v string) *GetIntentOutput {
  9361  	s.Checksum = &v
  9362  	return s
  9363  }
  9364  
  9365  // SetConclusionStatement sets the ConclusionStatement field's value.
  9366  func (s *GetIntentOutput) SetConclusionStatement(v *Statement) *GetIntentOutput {
  9367  	s.ConclusionStatement = v
  9368  	return s
  9369  }
  9370  
  9371  // SetConfirmationPrompt sets the ConfirmationPrompt field's value.
  9372  func (s *GetIntentOutput) SetConfirmationPrompt(v *Prompt) *GetIntentOutput {
  9373  	s.ConfirmationPrompt = v
  9374  	return s
  9375  }
  9376  
  9377  // SetCreatedDate sets the CreatedDate field's value.
  9378  func (s *GetIntentOutput) SetCreatedDate(v time.Time) *GetIntentOutput {
  9379  	s.CreatedDate = &v
  9380  	return s
  9381  }
  9382  
  9383  // SetDescription sets the Description field's value.
  9384  func (s *GetIntentOutput) SetDescription(v string) *GetIntentOutput {
  9385  	s.Description = &v
  9386  	return s
  9387  }
  9388  
  9389  // SetDialogCodeHook sets the DialogCodeHook field's value.
  9390  func (s *GetIntentOutput) SetDialogCodeHook(v *CodeHook) *GetIntentOutput {
  9391  	s.DialogCodeHook = v
  9392  	return s
  9393  }
  9394  
  9395  // SetFollowUpPrompt sets the FollowUpPrompt field's value.
  9396  func (s *GetIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *GetIntentOutput {
  9397  	s.FollowUpPrompt = v
  9398  	return s
  9399  }
  9400  
  9401  // SetFulfillmentActivity sets the FulfillmentActivity field's value.
  9402  func (s *GetIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *GetIntentOutput {
  9403  	s.FulfillmentActivity = v
  9404  	return s
  9405  }
  9406  
  9407  // SetInputContexts sets the InputContexts field's value.
  9408  func (s *GetIntentOutput) SetInputContexts(v []*InputContext) *GetIntentOutput {
  9409  	s.InputContexts = v
  9410  	return s
  9411  }
  9412  
  9413  // SetKendraConfiguration sets the KendraConfiguration field's value.
  9414  func (s *GetIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *GetIntentOutput {
  9415  	s.KendraConfiguration = v
  9416  	return s
  9417  }
  9418  
  9419  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
  9420  func (s *GetIntentOutput) SetLastUpdatedDate(v time.Time) *GetIntentOutput {
  9421  	s.LastUpdatedDate = &v
  9422  	return s
  9423  }
  9424  
  9425  // SetName sets the Name field's value.
  9426  func (s *GetIntentOutput) SetName(v string) *GetIntentOutput {
  9427  	s.Name = &v
  9428  	return s
  9429  }
  9430  
  9431  // SetOutputContexts sets the OutputContexts field's value.
  9432  func (s *GetIntentOutput) SetOutputContexts(v []*OutputContext) *GetIntentOutput {
  9433  	s.OutputContexts = v
  9434  	return s
  9435  }
  9436  
  9437  // SetParentIntentSignature sets the ParentIntentSignature field's value.
  9438  func (s *GetIntentOutput) SetParentIntentSignature(v string) *GetIntentOutput {
  9439  	s.ParentIntentSignature = &v
  9440  	return s
  9441  }
  9442  
  9443  // SetRejectionStatement sets the RejectionStatement field's value.
  9444  func (s *GetIntentOutput) SetRejectionStatement(v *Statement) *GetIntentOutput {
  9445  	s.RejectionStatement = v
  9446  	return s
  9447  }
  9448  
  9449  // SetSampleUtterances sets the SampleUtterances field's value.
  9450  func (s *GetIntentOutput) SetSampleUtterances(v []*string) *GetIntentOutput {
  9451  	s.SampleUtterances = v
  9452  	return s
  9453  }
  9454  
  9455  // SetSlots sets the Slots field's value.
  9456  func (s *GetIntentOutput) SetSlots(v []*Slot) *GetIntentOutput {
  9457  	s.Slots = v
  9458  	return s
  9459  }
  9460  
  9461  // SetVersion sets the Version field's value.
  9462  func (s *GetIntentOutput) SetVersion(v string) *GetIntentOutput {
  9463  	s.Version = &v
  9464  	return s
  9465  }
  9466  
  9467  type GetIntentVersionsInput struct {
  9468  	_ struct{} `type:"structure" nopayload:"true"`
  9469  
  9470  	// The maximum number of intent versions to return in the response. The default
  9471  	// is 10.
  9472  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  9473  
  9474  	// The name of the intent for which versions should be returned.
  9475  	//
  9476  	// Name is a required field
  9477  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  9478  
  9479  	// A pagination token for fetching the next page of intent versions. If the
  9480  	// response to this call is truncated, Amazon Lex returns a pagination token
  9481  	// in the response. To fetch the next page of versions, specify the pagination
  9482  	// token in the next request.
  9483  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  9484  }
  9485  
  9486  // String returns the string representation.
  9487  //
  9488  // API parameter values that are decorated as "sensitive" in the API will not
  9489  // be included in the string output. The member name will be present, but the
  9490  // value will be replaced with "sensitive".
  9491  func (s GetIntentVersionsInput) String() string {
  9492  	return awsutil.Prettify(s)
  9493  }
  9494  
  9495  // GoString returns the string representation.
  9496  //
  9497  // API parameter values that are decorated as "sensitive" in the API will not
  9498  // be included in the string output. The member name will be present, but the
  9499  // value will be replaced with "sensitive".
  9500  func (s GetIntentVersionsInput) GoString() string {
  9501  	return s.String()
  9502  }
  9503  
  9504  // Validate inspects the fields of the type to determine if they are valid.
  9505  func (s *GetIntentVersionsInput) Validate() error {
  9506  	invalidParams := request.ErrInvalidParams{Context: "GetIntentVersionsInput"}
  9507  	if s.MaxResults != nil && *s.MaxResults < 1 {
  9508  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  9509  	}
  9510  	if s.Name == nil {
  9511  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9512  	}
  9513  	if s.Name != nil && len(*s.Name) < 1 {
  9514  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  9515  	}
  9516  
  9517  	if invalidParams.Len() > 0 {
  9518  		return invalidParams
  9519  	}
  9520  	return nil
  9521  }
  9522  
  9523  // SetMaxResults sets the MaxResults field's value.
  9524  func (s *GetIntentVersionsInput) SetMaxResults(v int64) *GetIntentVersionsInput {
  9525  	s.MaxResults = &v
  9526  	return s
  9527  }
  9528  
  9529  // SetName sets the Name field's value.
  9530  func (s *GetIntentVersionsInput) SetName(v string) *GetIntentVersionsInput {
  9531  	s.Name = &v
  9532  	return s
  9533  }
  9534  
  9535  // SetNextToken sets the NextToken field's value.
  9536  func (s *GetIntentVersionsInput) SetNextToken(v string) *GetIntentVersionsInput {
  9537  	s.NextToken = &v
  9538  	return s
  9539  }
  9540  
  9541  type GetIntentVersionsOutput struct {
  9542  	_ struct{} `type:"structure"`
  9543  
  9544  	// An array of IntentMetadata objects, one for each numbered version of the
  9545  	// intent plus one for the $LATEST version.
  9546  	Intents []*IntentMetadata `locationName:"intents" type:"list"`
  9547  
  9548  	// A pagination token for fetching the next page of intent versions. If the
  9549  	// response to this call is truncated, Amazon Lex returns a pagination token
  9550  	// in the response. To fetch the next page of versions, specify the pagination
  9551  	// token in the next request.
  9552  	NextToken *string `locationName:"nextToken" type:"string"`
  9553  }
  9554  
  9555  // String returns the string representation.
  9556  //
  9557  // API parameter values that are decorated as "sensitive" in the API will not
  9558  // be included in the string output. The member name will be present, but the
  9559  // value will be replaced with "sensitive".
  9560  func (s GetIntentVersionsOutput) String() string {
  9561  	return awsutil.Prettify(s)
  9562  }
  9563  
  9564  // GoString returns the string representation.
  9565  //
  9566  // API parameter values that are decorated as "sensitive" in the API will not
  9567  // be included in the string output. The member name will be present, but the
  9568  // value will be replaced with "sensitive".
  9569  func (s GetIntentVersionsOutput) GoString() string {
  9570  	return s.String()
  9571  }
  9572  
  9573  // SetIntents sets the Intents field's value.
  9574  func (s *GetIntentVersionsOutput) SetIntents(v []*IntentMetadata) *GetIntentVersionsOutput {
  9575  	s.Intents = v
  9576  	return s
  9577  }
  9578  
  9579  // SetNextToken sets the NextToken field's value.
  9580  func (s *GetIntentVersionsOutput) SetNextToken(v string) *GetIntentVersionsOutput {
  9581  	s.NextToken = &v
  9582  	return s
  9583  }
  9584  
  9585  type GetIntentsInput struct {
  9586  	_ struct{} `type:"structure" nopayload:"true"`
  9587  
  9588  	// The maximum number of intents to return in the response. The default is 10.
  9589  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  9590  
  9591  	// Substring to match in intent names. An intent will be returned if any part
  9592  	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
  9593  	// and "abcxyz."
  9594  	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
  9595  
  9596  	// A pagination token that fetches the next page of intents. If the response
  9597  	// to this API call is truncated, Amazon Lex returns a pagination token in the
  9598  	// response. To fetch the next page of intents, specify the pagination token
  9599  	// in the next request.
  9600  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  9601  }
  9602  
  9603  // String returns the string representation.
  9604  //
  9605  // API parameter values that are decorated as "sensitive" in the API will not
  9606  // be included in the string output. The member name will be present, but the
  9607  // value will be replaced with "sensitive".
  9608  func (s GetIntentsInput) String() string {
  9609  	return awsutil.Prettify(s)
  9610  }
  9611  
  9612  // GoString returns the string representation.
  9613  //
  9614  // API parameter values that are decorated as "sensitive" in the API will not
  9615  // be included in the string output. The member name will be present, but the
  9616  // value will be replaced with "sensitive".
  9617  func (s GetIntentsInput) GoString() string {
  9618  	return s.String()
  9619  }
  9620  
  9621  // Validate inspects the fields of the type to determine if they are valid.
  9622  func (s *GetIntentsInput) Validate() error {
  9623  	invalidParams := request.ErrInvalidParams{Context: "GetIntentsInput"}
  9624  	if s.MaxResults != nil && *s.MaxResults < 1 {
  9625  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  9626  	}
  9627  	if s.NameContains != nil && len(*s.NameContains) < 1 {
  9628  		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
  9629  	}
  9630  
  9631  	if invalidParams.Len() > 0 {
  9632  		return invalidParams
  9633  	}
  9634  	return nil
  9635  }
  9636  
  9637  // SetMaxResults sets the MaxResults field's value.
  9638  func (s *GetIntentsInput) SetMaxResults(v int64) *GetIntentsInput {
  9639  	s.MaxResults = &v
  9640  	return s
  9641  }
  9642  
  9643  // SetNameContains sets the NameContains field's value.
  9644  func (s *GetIntentsInput) SetNameContains(v string) *GetIntentsInput {
  9645  	s.NameContains = &v
  9646  	return s
  9647  }
  9648  
  9649  // SetNextToken sets the NextToken field's value.
  9650  func (s *GetIntentsInput) SetNextToken(v string) *GetIntentsInput {
  9651  	s.NextToken = &v
  9652  	return s
  9653  }
  9654  
  9655  type GetIntentsOutput struct {
  9656  	_ struct{} `type:"structure"`
  9657  
  9658  	// An array of Intent objects. For more information, see PutBot.
  9659  	Intents []*IntentMetadata `locationName:"intents" type:"list"`
  9660  
  9661  	// If the response is truncated, the response includes a pagination token that
  9662  	// you can specify in your next request to fetch the next page of intents.
  9663  	NextToken *string `locationName:"nextToken" type:"string"`
  9664  }
  9665  
  9666  // String returns the string representation.
  9667  //
  9668  // API parameter values that are decorated as "sensitive" in the API will not
  9669  // be included in the string output. The member name will be present, but the
  9670  // value will be replaced with "sensitive".
  9671  func (s GetIntentsOutput) String() string {
  9672  	return awsutil.Prettify(s)
  9673  }
  9674  
  9675  // GoString returns the string representation.
  9676  //
  9677  // API parameter values that are decorated as "sensitive" in the API will not
  9678  // be included in the string output. The member name will be present, but the
  9679  // value will be replaced with "sensitive".
  9680  func (s GetIntentsOutput) GoString() string {
  9681  	return s.String()
  9682  }
  9683  
  9684  // SetIntents sets the Intents field's value.
  9685  func (s *GetIntentsOutput) SetIntents(v []*IntentMetadata) *GetIntentsOutput {
  9686  	s.Intents = v
  9687  	return s
  9688  }
  9689  
  9690  // SetNextToken sets the NextToken field's value.
  9691  func (s *GetIntentsOutput) SetNextToken(v string) *GetIntentsOutput {
  9692  	s.NextToken = &v
  9693  	return s
  9694  }
  9695  
  9696  type GetMigrationInput struct {
  9697  	_ struct{} `type:"structure" nopayload:"true"`
  9698  
  9699  	// The unique identifier of the migration to view. The migrationID is returned
  9700  	// by the operation.
  9701  	//
  9702  	// MigrationId is a required field
  9703  	MigrationId *string `location:"uri" locationName:"migrationId" min:"10" type:"string" required:"true"`
  9704  }
  9705  
  9706  // String returns the string representation.
  9707  //
  9708  // API parameter values that are decorated as "sensitive" in the API will not
  9709  // be included in the string output. The member name will be present, but the
  9710  // value will be replaced with "sensitive".
  9711  func (s GetMigrationInput) String() string {
  9712  	return awsutil.Prettify(s)
  9713  }
  9714  
  9715  // GoString returns the string representation.
  9716  //
  9717  // API parameter values that are decorated as "sensitive" in the API will not
  9718  // be included in the string output. The member name will be present, but the
  9719  // value will be replaced with "sensitive".
  9720  func (s GetMigrationInput) GoString() string {
  9721  	return s.String()
  9722  }
  9723  
  9724  // Validate inspects the fields of the type to determine if they are valid.
  9725  func (s *GetMigrationInput) Validate() error {
  9726  	invalidParams := request.ErrInvalidParams{Context: "GetMigrationInput"}
  9727  	if s.MigrationId == nil {
  9728  		invalidParams.Add(request.NewErrParamRequired("MigrationId"))
  9729  	}
  9730  	if s.MigrationId != nil && len(*s.MigrationId) < 10 {
  9731  		invalidParams.Add(request.NewErrParamMinLen("MigrationId", 10))
  9732  	}
  9733  
  9734  	if invalidParams.Len() > 0 {
  9735  		return invalidParams
  9736  	}
  9737  	return nil
  9738  }
  9739  
  9740  // SetMigrationId sets the MigrationId field's value.
  9741  func (s *GetMigrationInput) SetMigrationId(v string) *GetMigrationInput {
  9742  	s.MigrationId = &v
  9743  	return s
  9744  }
  9745  
  9746  type GetMigrationOutput struct {
  9747  	_ struct{} `type:"structure"`
  9748  
  9749  	// A list of alerts and warnings that indicate issues with the migration for
  9750  	// the Amazon Lex V1 bot to Amazon Lex V2. You receive a warning when an Amazon
  9751  	// Lex V1 feature has a different implementation if Amazon Lex V2.
  9752  	//
  9753  	// For more information, see Migrating a bot (https://docs.aws.amazon.com/lexv2/latest/dg/migrate.html)
  9754  	// in the Amazon Lex V2 developer guide.
  9755  	Alerts []*MigrationAlert `locationName:"alerts" type:"list"`
  9756  
  9757  	// The unique identifier of the migration. This is the same as the identifier
  9758  	// used when calling the GetMigration operation.
  9759  	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
  9760  
  9761  	// Indicates the status of the migration. When the status is COMPLETE the migration
  9762  	// is finished and the bot is available in Amazon Lex V2. There may be alerts
  9763  	// and warnings that need to be resolved to complete the migration.
  9764  	MigrationStatus *string `locationName:"migrationStatus" type:"string" enum:"MigrationStatus"`
  9765  
  9766  	// The strategy used to conduct the migration.
  9767  	//
  9768  	//    * CREATE_NEW - Creates a new Amazon Lex V2 bot and migrates the Amazon
  9769  	//    Lex V1 bot to the new bot.
  9770  	//
  9771  	//    * UPDATE_EXISTING - Overwrites the existing Amazon Lex V2 bot metadata
  9772  	//    and the locale being migrated. It doesn't change any other locales in
  9773  	//    the Amazon Lex V2 bot. If the locale doesn't exist, a new locale is created
  9774  	//    in the Amazon Lex V2 bot.
  9775  	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
  9776  
  9777  	// The date and time that the migration started.
  9778  	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
  9779  
  9780  	// The locale of the Amazon Lex V1 bot migrated to Amazon Lex V2.
  9781  	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
  9782  
  9783  	// The name of the Amazon Lex V1 bot migrated to Amazon Lex V2.
  9784  	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
  9785  
  9786  	// The version of the Amazon Lex V1 bot migrated to Amazon Lex V2.
  9787  	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
  9788  
  9789  	// The unique identifier of the Amazon Lex V2 bot that the Amazon Lex V1 is
  9790  	// being migrated to.
  9791  	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
  9792  
  9793  	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
  9794  	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
  9795  }
  9796  
  9797  // String returns the string representation.
  9798  //
  9799  // API parameter values that are decorated as "sensitive" in the API will not
  9800  // be included in the string output. The member name will be present, but the
  9801  // value will be replaced with "sensitive".
  9802  func (s GetMigrationOutput) String() string {
  9803  	return awsutil.Prettify(s)
  9804  }
  9805  
  9806  // GoString returns the string representation.
  9807  //
  9808  // API parameter values that are decorated as "sensitive" in the API will not
  9809  // be included in the string output. The member name will be present, but the
  9810  // value will be replaced with "sensitive".
  9811  func (s GetMigrationOutput) GoString() string {
  9812  	return s.String()
  9813  }
  9814  
  9815  // SetAlerts sets the Alerts field's value.
  9816  func (s *GetMigrationOutput) SetAlerts(v []*MigrationAlert) *GetMigrationOutput {
  9817  	s.Alerts = v
  9818  	return s
  9819  }
  9820  
  9821  // SetMigrationId sets the MigrationId field's value.
  9822  func (s *GetMigrationOutput) SetMigrationId(v string) *GetMigrationOutput {
  9823  	s.MigrationId = &v
  9824  	return s
  9825  }
  9826  
  9827  // SetMigrationStatus sets the MigrationStatus field's value.
  9828  func (s *GetMigrationOutput) SetMigrationStatus(v string) *GetMigrationOutput {
  9829  	s.MigrationStatus = &v
  9830  	return s
  9831  }
  9832  
  9833  // SetMigrationStrategy sets the MigrationStrategy field's value.
  9834  func (s *GetMigrationOutput) SetMigrationStrategy(v string) *GetMigrationOutput {
  9835  	s.MigrationStrategy = &v
  9836  	return s
  9837  }
  9838  
  9839  // SetMigrationTimestamp sets the MigrationTimestamp field's value.
  9840  func (s *GetMigrationOutput) SetMigrationTimestamp(v time.Time) *GetMigrationOutput {
  9841  	s.MigrationTimestamp = &v
  9842  	return s
  9843  }
  9844  
  9845  // SetV1BotLocale sets the V1BotLocale field's value.
  9846  func (s *GetMigrationOutput) SetV1BotLocale(v string) *GetMigrationOutput {
  9847  	s.V1BotLocale = &v
  9848  	return s
  9849  }
  9850  
  9851  // SetV1BotName sets the V1BotName field's value.
  9852  func (s *GetMigrationOutput) SetV1BotName(v string) *GetMigrationOutput {
  9853  	s.V1BotName = &v
  9854  	return s
  9855  }
  9856  
  9857  // SetV1BotVersion sets the V1BotVersion field's value.
  9858  func (s *GetMigrationOutput) SetV1BotVersion(v string) *GetMigrationOutput {
  9859  	s.V1BotVersion = &v
  9860  	return s
  9861  }
  9862  
  9863  // SetV2BotId sets the V2BotId field's value.
  9864  func (s *GetMigrationOutput) SetV2BotId(v string) *GetMigrationOutput {
  9865  	s.V2BotId = &v
  9866  	return s
  9867  }
  9868  
  9869  // SetV2BotRole sets the V2BotRole field's value.
  9870  func (s *GetMigrationOutput) SetV2BotRole(v string) *GetMigrationOutput {
  9871  	s.V2BotRole = &v
  9872  	return s
  9873  }
  9874  
  9875  type GetMigrationsInput struct {
  9876  	_ struct{} `type:"structure" nopayload:"true"`
  9877  
  9878  	// The maximum number of migrations to return in the response. The default is
  9879  	// 10.
  9880  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  9881  
  9882  	// Filters the list to contain only migrations in the specified state.
  9883  	MigrationStatusEquals *string `location:"querystring" locationName:"migrationStatusEquals" type:"string" enum:"MigrationStatus"`
  9884  
  9885  	// A pagination token that fetches the next page of migrations. If the response
  9886  	// to this operation is truncated, Amazon Lex returns a pagination token in
  9887  	// the response. To fetch the next page of migrations, specify the pagination
  9888  	// token in the request.
  9889  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  9890  
  9891  	// The field to sort the list of migrations by. You can sort by the Amazon Lex
  9892  	// V1 bot name or the date and time that the migration was started.
  9893  	SortByAttribute *string `location:"querystring" locationName:"sortByAttribute" type:"string" enum:"MigrationSortAttribute"`
  9894  
  9895  	// The order so sort the list.
  9896  	SortByOrder *string `location:"querystring" locationName:"sortByOrder" type:"string" enum:"SortOrder"`
  9897  
  9898  	// Filters the list to contain only bots whose name contains the specified string.
  9899  	// The string is matched anywhere in bot name.
  9900  	V1BotNameContains *string `location:"querystring" locationName:"v1BotNameContains" min:"2" type:"string"`
  9901  }
  9902  
  9903  // String returns the string representation.
  9904  //
  9905  // API parameter values that are decorated as "sensitive" in the API will not
  9906  // be included in the string output. The member name will be present, but the
  9907  // value will be replaced with "sensitive".
  9908  func (s GetMigrationsInput) String() string {
  9909  	return awsutil.Prettify(s)
  9910  }
  9911  
  9912  // GoString returns the string representation.
  9913  //
  9914  // API parameter values that are decorated as "sensitive" in the API will not
  9915  // be included in the string output. The member name will be present, but the
  9916  // value will be replaced with "sensitive".
  9917  func (s GetMigrationsInput) GoString() string {
  9918  	return s.String()
  9919  }
  9920  
  9921  // Validate inspects the fields of the type to determine if they are valid.
  9922  func (s *GetMigrationsInput) Validate() error {
  9923  	invalidParams := request.ErrInvalidParams{Context: "GetMigrationsInput"}
  9924  	if s.MaxResults != nil && *s.MaxResults < 1 {
  9925  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  9926  	}
  9927  	if s.V1BotNameContains != nil && len(*s.V1BotNameContains) < 2 {
  9928  		invalidParams.Add(request.NewErrParamMinLen("V1BotNameContains", 2))
  9929  	}
  9930  
  9931  	if invalidParams.Len() > 0 {
  9932  		return invalidParams
  9933  	}
  9934  	return nil
  9935  }
  9936  
  9937  // SetMaxResults sets the MaxResults field's value.
  9938  func (s *GetMigrationsInput) SetMaxResults(v int64) *GetMigrationsInput {
  9939  	s.MaxResults = &v
  9940  	return s
  9941  }
  9942  
  9943  // SetMigrationStatusEquals sets the MigrationStatusEquals field's value.
  9944  func (s *GetMigrationsInput) SetMigrationStatusEquals(v string) *GetMigrationsInput {
  9945  	s.MigrationStatusEquals = &v
  9946  	return s
  9947  }
  9948  
  9949  // SetNextToken sets the NextToken field's value.
  9950  func (s *GetMigrationsInput) SetNextToken(v string) *GetMigrationsInput {
  9951  	s.NextToken = &v
  9952  	return s
  9953  }
  9954  
  9955  // SetSortByAttribute sets the SortByAttribute field's value.
  9956  func (s *GetMigrationsInput) SetSortByAttribute(v string) *GetMigrationsInput {
  9957  	s.SortByAttribute = &v
  9958  	return s
  9959  }
  9960  
  9961  // SetSortByOrder sets the SortByOrder field's value.
  9962  func (s *GetMigrationsInput) SetSortByOrder(v string) *GetMigrationsInput {
  9963  	s.SortByOrder = &v
  9964  	return s
  9965  }
  9966  
  9967  // SetV1BotNameContains sets the V1BotNameContains field's value.
  9968  func (s *GetMigrationsInput) SetV1BotNameContains(v string) *GetMigrationsInput {
  9969  	s.V1BotNameContains = &v
  9970  	return s
  9971  }
  9972  
  9973  type GetMigrationsOutput struct {
  9974  	_ struct{} `type:"structure"`
  9975  
  9976  	// An array of summaries for migrations from Amazon Lex V1 to Amazon Lex V2.
  9977  	// To see details of the migration, use the migrationId from the summary in
  9978  	// a call to the operation.
  9979  	MigrationSummaries []*MigrationSummary `locationName:"migrationSummaries" type:"list"`
  9980  
  9981  	// If the response is truncated, it includes a pagination token that you can
  9982  	// specify in your next request to fetch the next page of migrations.
  9983  	NextToken *string `locationName:"nextToken" type:"string"`
  9984  }
  9985  
  9986  // String returns the string representation.
  9987  //
  9988  // API parameter values that are decorated as "sensitive" in the API will not
  9989  // be included in the string output. The member name will be present, but the
  9990  // value will be replaced with "sensitive".
  9991  func (s GetMigrationsOutput) String() string {
  9992  	return awsutil.Prettify(s)
  9993  }
  9994  
  9995  // GoString returns the string representation.
  9996  //
  9997  // API parameter values that are decorated as "sensitive" in the API will not
  9998  // be included in the string output. The member name will be present, but the
  9999  // value will be replaced with "sensitive".
 10000  func (s GetMigrationsOutput) GoString() string {
 10001  	return s.String()
 10002  }
 10003  
 10004  // SetMigrationSummaries sets the MigrationSummaries field's value.
 10005  func (s *GetMigrationsOutput) SetMigrationSummaries(v []*MigrationSummary) *GetMigrationsOutput {
 10006  	s.MigrationSummaries = v
 10007  	return s
 10008  }
 10009  
 10010  // SetNextToken sets the NextToken field's value.
 10011  func (s *GetMigrationsOutput) SetNextToken(v string) *GetMigrationsOutput {
 10012  	s.NextToken = &v
 10013  	return s
 10014  }
 10015  
 10016  type GetSlotTypeInput struct {
 10017  	_ struct{} `type:"structure" nopayload:"true"`
 10018  
 10019  	// The name of the slot type. The name is case sensitive.
 10020  	//
 10021  	// Name is a required field
 10022  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 10023  
 10024  	// The version of the slot type.
 10025  	//
 10026  	// Version is a required field
 10027  	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
 10028  }
 10029  
 10030  // String returns the string representation.
 10031  //
 10032  // API parameter values that are decorated as "sensitive" in the API will not
 10033  // be included in the string output. The member name will be present, but the
 10034  // value will be replaced with "sensitive".
 10035  func (s GetSlotTypeInput) String() string {
 10036  	return awsutil.Prettify(s)
 10037  }
 10038  
 10039  // GoString returns the string representation.
 10040  //
 10041  // API parameter values that are decorated as "sensitive" in the API will not
 10042  // be included in the string output. The member name will be present, but the
 10043  // value will be replaced with "sensitive".
 10044  func (s GetSlotTypeInput) GoString() string {
 10045  	return s.String()
 10046  }
 10047  
 10048  // Validate inspects the fields of the type to determine if they are valid.
 10049  func (s *GetSlotTypeInput) Validate() error {
 10050  	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeInput"}
 10051  	if s.Name == nil {
 10052  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10053  	}
 10054  	if s.Name != nil && len(*s.Name) < 1 {
 10055  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10056  	}
 10057  	if s.Version == nil {
 10058  		invalidParams.Add(request.NewErrParamRequired("Version"))
 10059  	}
 10060  	if s.Version != nil && len(*s.Version) < 1 {
 10061  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
 10062  	}
 10063  
 10064  	if invalidParams.Len() > 0 {
 10065  		return invalidParams
 10066  	}
 10067  	return nil
 10068  }
 10069  
 10070  // SetName sets the Name field's value.
 10071  func (s *GetSlotTypeInput) SetName(v string) *GetSlotTypeInput {
 10072  	s.Name = &v
 10073  	return s
 10074  }
 10075  
 10076  // SetVersion sets the Version field's value.
 10077  func (s *GetSlotTypeInput) SetVersion(v string) *GetSlotTypeInput {
 10078  	s.Version = &v
 10079  	return s
 10080  }
 10081  
 10082  type GetSlotTypeOutput struct {
 10083  	_ struct{} `type:"structure"`
 10084  
 10085  	// Checksum of the $LATEST version of the slot type.
 10086  	Checksum *string `locationName:"checksum" type:"string"`
 10087  
 10088  	// The date that the slot type was created.
 10089  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 10090  
 10091  	// A description of the slot type.
 10092  	Description *string `locationName:"description" type:"string"`
 10093  
 10094  	// A list of EnumerationValue objects that defines the values that the slot
 10095  	// type can take.
 10096  	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
 10097  
 10098  	// The date that the slot type was updated. When you create a resource, the
 10099  	// creation date and last update date are the same.
 10100  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 10101  
 10102  	// The name of the slot type.
 10103  	Name *string `locationName:"name" min:"1" type:"string"`
 10104  
 10105  	// The built-in slot type used as a parent for the slot type.
 10106  	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
 10107  
 10108  	// Configuration information that extends the parent built-in slot type.
 10109  	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
 10110  
 10111  	// The strategy that Amazon Lex uses to determine the value of the slot. For
 10112  	// more information, see PutSlotType.
 10113  	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
 10114  
 10115  	// The version of the slot type.
 10116  	Version *string `locationName:"version" min:"1" type:"string"`
 10117  }
 10118  
 10119  // String returns the string representation.
 10120  //
 10121  // API parameter values that are decorated as "sensitive" in the API will not
 10122  // be included in the string output. The member name will be present, but the
 10123  // value will be replaced with "sensitive".
 10124  func (s GetSlotTypeOutput) String() string {
 10125  	return awsutil.Prettify(s)
 10126  }
 10127  
 10128  // GoString returns the string representation.
 10129  //
 10130  // API parameter values that are decorated as "sensitive" in the API will not
 10131  // be included in the string output. The member name will be present, but the
 10132  // value will be replaced with "sensitive".
 10133  func (s GetSlotTypeOutput) GoString() string {
 10134  	return s.String()
 10135  }
 10136  
 10137  // SetChecksum sets the Checksum field's value.
 10138  func (s *GetSlotTypeOutput) SetChecksum(v string) *GetSlotTypeOutput {
 10139  	s.Checksum = &v
 10140  	return s
 10141  }
 10142  
 10143  // SetCreatedDate sets the CreatedDate field's value.
 10144  func (s *GetSlotTypeOutput) SetCreatedDate(v time.Time) *GetSlotTypeOutput {
 10145  	s.CreatedDate = &v
 10146  	return s
 10147  }
 10148  
 10149  // SetDescription sets the Description field's value.
 10150  func (s *GetSlotTypeOutput) SetDescription(v string) *GetSlotTypeOutput {
 10151  	s.Description = &v
 10152  	return s
 10153  }
 10154  
 10155  // SetEnumerationValues sets the EnumerationValues field's value.
 10156  func (s *GetSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *GetSlotTypeOutput {
 10157  	s.EnumerationValues = v
 10158  	return s
 10159  }
 10160  
 10161  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 10162  func (s *GetSlotTypeOutput) SetLastUpdatedDate(v time.Time) *GetSlotTypeOutput {
 10163  	s.LastUpdatedDate = &v
 10164  	return s
 10165  }
 10166  
 10167  // SetName sets the Name field's value.
 10168  func (s *GetSlotTypeOutput) SetName(v string) *GetSlotTypeOutput {
 10169  	s.Name = &v
 10170  	return s
 10171  }
 10172  
 10173  // SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
 10174  func (s *GetSlotTypeOutput) SetParentSlotTypeSignature(v string) *GetSlotTypeOutput {
 10175  	s.ParentSlotTypeSignature = &v
 10176  	return s
 10177  }
 10178  
 10179  // SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
 10180  func (s *GetSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *GetSlotTypeOutput {
 10181  	s.SlotTypeConfigurations = v
 10182  	return s
 10183  }
 10184  
 10185  // SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
 10186  func (s *GetSlotTypeOutput) SetValueSelectionStrategy(v string) *GetSlotTypeOutput {
 10187  	s.ValueSelectionStrategy = &v
 10188  	return s
 10189  }
 10190  
 10191  // SetVersion sets the Version field's value.
 10192  func (s *GetSlotTypeOutput) SetVersion(v string) *GetSlotTypeOutput {
 10193  	s.Version = &v
 10194  	return s
 10195  }
 10196  
 10197  type GetSlotTypeVersionsInput struct {
 10198  	_ struct{} `type:"structure" nopayload:"true"`
 10199  
 10200  	// The maximum number of slot type versions to return in the response. The default
 10201  	// is 10.
 10202  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 10203  
 10204  	// The name of the slot type for which versions should be returned.
 10205  	//
 10206  	// Name is a required field
 10207  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 10208  
 10209  	// A pagination token for fetching the next page of slot type versions. If the
 10210  	// response to this call is truncated, Amazon Lex returns a pagination token
 10211  	// in the response. To fetch the next page of versions, specify the pagination
 10212  	// token in the next request.
 10213  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 10214  }
 10215  
 10216  // String returns the string representation.
 10217  //
 10218  // API parameter values that are decorated as "sensitive" in the API will not
 10219  // be included in the string output. The member name will be present, but the
 10220  // value will be replaced with "sensitive".
 10221  func (s GetSlotTypeVersionsInput) String() string {
 10222  	return awsutil.Prettify(s)
 10223  }
 10224  
 10225  // GoString returns the string representation.
 10226  //
 10227  // API parameter values that are decorated as "sensitive" in the API will not
 10228  // be included in the string output. The member name will be present, but the
 10229  // value will be replaced with "sensitive".
 10230  func (s GetSlotTypeVersionsInput) GoString() string {
 10231  	return s.String()
 10232  }
 10233  
 10234  // Validate inspects the fields of the type to determine if they are valid.
 10235  func (s *GetSlotTypeVersionsInput) Validate() error {
 10236  	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeVersionsInput"}
 10237  	if s.MaxResults != nil && *s.MaxResults < 1 {
 10238  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 10239  	}
 10240  	if s.Name == nil {
 10241  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10242  	}
 10243  	if s.Name != nil && len(*s.Name) < 1 {
 10244  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10245  	}
 10246  
 10247  	if invalidParams.Len() > 0 {
 10248  		return invalidParams
 10249  	}
 10250  	return nil
 10251  }
 10252  
 10253  // SetMaxResults sets the MaxResults field's value.
 10254  func (s *GetSlotTypeVersionsInput) SetMaxResults(v int64) *GetSlotTypeVersionsInput {
 10255  	s.MaxResults = &v
 10256  	return s
 10257  }
 10258  
 10259  // SetName sets the Name field's value.
 10260  func (s *GetSlotTypeVersionsInput) SetName(v string) *GetSlotTypeVersionsInput {
 10261  	s.Name = &v
 10262  	return s
 10263  }
 10264  
 10265  // SetNextToken sets the NextToken field's value.
 10266  func (s *GetSlotTypeVersionsInput) SetNextToken(v string) *GetSlotTypeVersionsInput {
 10267  	s.NextToken = &v
 10268  	return s
 10269  }
 10270  
 10271  type GetSlotTypeVersionsOutput struct {
 10272  	_ struct{} `type:"structure"`
 10273  
 10274  	// A pagination token for fetching the next page of slot type versions. If the
 10275  	// response to this call is truncated, Amazon Lex returns a pagination token
 10276  	// in the response. To fetch the next page of versions, specify the pagination
 10277  	// token in the next request.
 10278  	NextToken *string `locationName:"nextToken" type:"string"`
 10279  
 10280  	// An array of SlotTypeMetadata objects, one for each numbered version of the
 10281  	// slot type plus one for the $LATEST version.
 10282  	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
 10283  }
 10284  
 10285  // String returns the string representation.
 10286  //
 10287  // API parameter values that are decorated as "sensitive" in the API will not
 10288  // be included in the string output. The member name will be present, but the
 10289  // value will be replaced with "sensitive".
 10290  func (s GetSlotTypeVersionsOutput) String() string {
 10291  	return awsutil.Prettify(s)
 10292  }
 10293  
 10294  // GoString returns the string representation.
 10295  //
 10296  // API parameter values that are decorated as "sensitive" in the API will not
 10297  // be included in the string output. The member name will be present, but the
 10298  // value will be replaced with "sensitive".
 10299  func (s GetSlotTypeVersionsOutput) GoString() string {
 10300  	return s.String()
 10301  }
 10302  
 10303  // SetNextToken sets the NextToken field's value.
 10304  func (s *GetSlotTypeVersionsOutput) SetNextToken(v string) *GetSlotTypeVersionsOutput {
 10305  	s.NextToken = &v
 10306  	return s
 10307  }
 10308  
 10309  // SetSlotTypes sets the SlotTypes field's value.
 10310  func (s *GetSlotTypeVersionsOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypeVersionsOutput {
 10311  	s.SlotTypes = v
 10312  	return s
 10313  }
 10314  
 10315  type GetSlotTypesInput struct {
 10316  	_ struct{} `type:"structure" nopayload:"true"`
 10317  
 10318  	// The maximum number of slot types to return in the response. The default is
 10319  	// 10.
 10320  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 10321  
 10322  	// Substring to match in slot type names. A slot type will be returned if any
 10323  	// part of its name matches the substring. For example, "xyz" matches both "xyzabc"
 10324  	// and "abcxyz."
 10325  	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
 10326  
 10327  	// A pagination token that fetches the next page of slot types. If the response
 10328  	// to this API call is truncated, Amazon Lex returns a pagination token in the
 10329  	// response. To fetch next page of slot types, specify the pagination token
 10330  	// in the next request.
 10331  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 10332  }
 10333  
 10334  // String returns the string representation.
 10335  //
 10336  // API parameter values that are decorated as "sensitive" in the API will not
 10337  // be included in the string output. The member name will be present, but the
 10338  // value will be replaced with "sensitive".
 10339  func (s GetSlotTypesInput) String() string {
 10340  	return awsutil.Prettify(s)
 10341  }
 10342  
 10343  // GoString returns the string representation.
 10344  //
 10345  // API parameter values that are decorated as "sensitive" in the API will not
 10346  // be included in the string output. The member name will be present, but the
 10347  // value will be replaced with "sensitive".
 10348  func (s GetSlotTypesInput) GoString() string {
 10349  	return s.String()
 10350  }
 10351  
 10352  // Validate inspects the fields of the type to determine if they are valid.
 10353  func (s *GetSlotTypesInput) Validate() error {
 10354  	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypesInput"}
 10355  	if s.MaxResults != nil && *s.MaxResults < 1 {
 10356  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 10357  	}
 10358  	if s.NameContains != nil && len(*s.NameContains) < 1 {
 10359  		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
 10360  	}
 10361  
 10362  	if invalidParams.Len() > 0 {
 10363  		return invalidParams
 10364  	}
 10365  	return nil
 10366  }
 10367  
 10368  // SetMaxResults sets the MaxResults field's value.
 10369  func (s *GetSlotTypesInput) SetMaxResults(v int64) *GetSlotTypesInput {
 10370  	s.MaxResults = &v
 10371  	return s
 10372  }
 10373  
 10374  // SetNameContains sets the NameContains field's value.
 10375  func (s *GetSlotTypesInput) SetNameContains(v string) *GetSlotTypesInput {
 10376  	s.NameContains = &v
 10377  	return s
 10378  }
 10379  
 10380  // SetNextToken sets the NextToken field's value.
 10381  func (s *GetSlotTypesInput) SetNextToken(v string) *GetSlotTypesInput {
 10382  	s.NextToken = &v
 10383  	return s
 10384  }
 10385  
 10386  type GetSlotTypesOutput struct {
 10387  	_ struct{} `type:"structure"`
 10388  
 10389  	// If the response is truncated, it includes a pagination token that you can
 10390  	// specify in your next request to fetch the next page of slot types.
 10391  	NextToken *string `locationName:"nextToken" type:"string"`
 10392  
 10393  	// An array of objects, one for each slot type, that provides information such
 10394  	// as the name of the slot type, the version, and a description.
 10395  	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
 10396  }
 10397  
 10398  // String returns the string representation.
 10399  //
 10400  // API parameter values that are decorated as "sensitive" in the API will not
 10401  // be included in the string output. The member name will be present, but the
 10402  // value will be replaced with "sensitive".
 10403  func (s GetSlotTypesOutput) String() string {
 10404  	return awsutil.Prettify(s)
 10405  }
 10406  
 10407  // GoString returns the string representation.
 10408  //
 10409  // API parameter values that are decorated as "sensitive" in the API will not
 10410  // be included in the string output. The member name will be present, but the
 10411  // value will be replaced with "sensitive".
 10412  func (s GetSlotTypesOutput) GoString() string {
 10413  	return s.String()
 10414  }
 10415  
 10416  // SetNextToken sets the NextToken field's value.
 10417  func (s *GetSlotTypesOutput) SetNextToken(v string) *GetSlotTypesOutput {
 10418  	s.NextToken = &v
 10419  	return s
 10420  }
 10421  
 10422  // SetSlotTypes sets the SlotTypes field's value.
 10423  func (s *GetSlotTypesOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypesOutput {
 10424  	s.SlotTypes = v
 10425  	return s
 10426  }
 10427  
 10428  type GetUtterancesViewInput struct {
 10429  	_ struct{} `type:"structure" nopayload:"true"`
 10430  
 10431  	// The name of the bot for which utterance information should be returned.
 10432  	//
 10433  	// BotName is a required field
 10434  	BotName *string `location:"uri" locationName:"botname" min:"2" type:"string" required:"true"`
 10435  
 10436  	// An array of bot versions for which utterance information should be returned.
 10437  	// The limit is 5 versions per request.
 10438  	//
 10439  	// BotVersions is a required field
 10440  	BotVersions []*string `location:"querystring" locationName:"bot_versions" min:"1" type:"list" required:"true"`
 10441  
 10442  	// To return utterances that were recognized and handled, use Detected. To return
 10443  	// utterances that were not recognized, use Missed.
 10444  	//
 10445  	// StatusType is a required field
 10446  	StatusType *string `location:"querystring" locationName:"status_type" type:"string" required:"true" enum:"StatusType"`
 10447  }
 10448  
 10449  // String returns the string representation.
 10450  //
 10451  // API parameter values that are decorated as "sensitive" in the API will not
 10452  // be included in the string output. The member name will be present, but the
 10453  // value will be replaced with "sensitive".
 10454  func (s GetUtterancesViewInput) String() string {
 10455  	return awsutil.Prettify(s)
 10456  }
 10457  
 10458  // GoString returns the string representation.
 10459  //
 10460  // API parameter values that are decorated as "sensitive" in the API will not
 10461  // be included in the string output. The member name will be present, but the
 10462  // value will be replaced with "sensitive".
 10463  func (s GetUtterancesViewInput) GoString() string {
 10464  	return s.String()
 10465  }
 10466  
 10467  // Validate inspects the fields of the type to determine if they are valid.
 10468  func (s *GetUtterancesViewInput) Validate() error {
 10469  	invalidParams := request.ErrInvalidParams{Context: "GetUtterancesViewInput"}
 10470  	if s.BotName == nil {
 10471  		invalidParams.Add(request.NewErrParamRequired("BotName"))
 10472  	}
 10473  	if s.BotName != nil && len(*s.BotName) < 2 {
 10474  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
 10475  	}
 10476  	if s.BotVersions == nil {
 10477  		invalidParams.Add(request.NewErrParamRequired("BotVersions"))
 10478  	}
 10479  	if s.BotVersions != nil && len(s.BotVersions) < 1 {
 10480  		invalidParams.Add(request.NewErrParamMinLen("BotVersions", 1))
 10481  	}
 10482  	if s.StatusType == nil {
 10483  		invalidParams.Add(request.NewErrParamRequired("StatusType"))
 10484  	}
 10485  
 10486  	if invalidParams.Len() > 0 {
 10487  		return invalidParams
 10488  	}
 10489  	return nil
 10490  }
 10491  
 10492  // SetBotName sets the BotName field's value.
 10493  func (s *GetUtterancesViewInput) SetBotName(v string) *GetUtterancesViewInput {
 10494  	s.BotName = &v
 10495  	return s
 10496  }
 10497  
 10498  // SetBotVersions sets the BotVersions field's value.
 10499  func (s *GetUtterancesViewInput) SetBotVersions(v []*string) *GetUtterancesViewInput {
 10500  	s.BotVersions = v
 10501  	return s
 10502  }
 10503  
 10504  // SetStatusType sets the StatusType field's value.
 10505  func (s *GetUtterancesViewInput) SetStatusType(v string) *GetUtterancesViewInput {
 10506  	s.StatusType = &v
 10507  	return s
 10508  }
 10509  
 10510  type GetUtterancesViewOutput struct {
 10511  	_ struct{} `type:"structure"`
 10512  
 10513  	// The name of the bot for which utterance information was returned.
 10514  	BotName *string `locationName:"botName" min:"2" type:"string"`
 10515  
 10516  	// An array of UtteranceList objects, each containing a list of UtteranceData
 10517  	// objects describing the utterances that were processed by your bot. The response
 10518  	// contains a maximum of 100 UtteranceData objects for each version. Amazon
 10519  	// Lex returns the most frequent utterances received by the bot in the last
 10520  	// 15 days.
 10521  	Utterances []*UtteranceList `locationName:"utterances" type:"list"`
 10522  }
 10523  
 10524  // String returns the string representation.
 10525  //
 10526  // API parameter values that are decorated as "sensitive" in the API will not
 10527  // be included in the string output. The member name will be present, but the
 10528  // value will be replaced with "sensitive".
 10529  func (s GetUtterancesViewOutput) String() string {
 10530  	return awsutil.Prettify(s)
 10531  }
 10532  
 10533  // GoString returns the string representation.
 10534  //
 10535  // API parameter values that are decorated as "sensitive" in the API will not
 10536  // be included in the string output. The member name will be present, but the
 10537  // value will be replaced with "sensitive".
 10538  func (s GetUtterancesViewOutput) GoString() string {
 10539  	return s.String()
 10540  }
 10541  
 10542  // SetBotName sets the BotName field's value.
 10543  func (s *GetUtterancesViewOutput) SetBotName(v string) *GetUtterancesViewOutput {
 10544  	s.BotName = &v
 10545  	return s
 10546  }
 10547  
 10548  // SetUtterances sets the Utterances field's value.
 10549  func (s *GetUtterancesViewOutput) SetUtterances(v []*UtteranceList) *GetUtterancesViewOutput {
 10550  	s.Utterances = v
 10551  	return s
 10552  }
 10553  
 10554  // The name of a context that must be active for an intent to be selected by
 10555  // Amazon Lex.
 10556  type InputContext struct {
 10557  	_ struct{} `type:"structure"`
 10558  
 10559  	// The name of the context.
 10560  	//
 10561  	// Name is a required field
 10562  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
 10563  }
 10564  
 10565  // String returns the string representation.
 10566  //
 10567  // API parameter values that are decorated as "sensitive" in the API will not
 10568  // be included in the string output. The member name will be present, but the
 10569  // value will be replaced with "sensitive".
 10570  func (s InputContext) String() string {
 10571  	return awsutil.Prettify(s)
 10572  }
 10573  
 10574  // GoString returns the string representation.
 10575  //
 10576  // API parameter values that are decorated as "sensitive" in the API will not
 10577  // be included in the string output. The member name will be present, but the
 10578  // value will be replaced with "sensitive".
 10579  func (s InputContext) GoString() string {
 10580  	return s.String()
 10581  }
 10582  
 10583  // Validate inspects the fields of the type to determine if they are valid.
 10584  func (s *InputContext) Validate() error {
 10585  	invalidParams := request.ErrInvalidParams{Context: "InputContext"}
 10586  	if s.Name == nil {
 10587  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10588  	}
 10589  	if s.Name != nil && len(*s.Name) < 1 {
 10590  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10591  	}
 10592  
 10593  	if invalidParams.Len() > 0 {
 10594  		return invalidParams
 10595  	}
 10596  	return nil
 10597  }
 10598  
 10599  // SetName sets the Name field's value.
 10600  func (s *InputContext) SetName(v string) *InputContext {
 10601  	s.Name = &v
 10602  	return s
 10603  }
 10604  
 10605  // Identifies the specific version of an intent.
 10606  type Intent struct {
 10607  	_ struct{} `type:"structure"`
 10608  
 10609  	// The name of the intent.
 10610  	//
 10611  	// IntentName is a required field
 10612  	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
 10613  
 10614  	// The version of the intent.
 10615  	//
 10616  	// IntentVersion is a required field
 10617  	IntentVersion *string `locationName:"intentVersion" min:"1" type:"string" required:"true"`
 10618  }
 10619  
 10620  // String returns the string representation.
 10621  //
 10622  // API parameter values that are decorated as "sensitive" in the API will not
 10623  // be included in the string output. The member name will be present, but the
 10624  // value will be replaced with "sensitive".
 10625  func (s Intent) String() string {
 10626  	return awsutil.Prettify(s)
 10627  }
 10628  
 10629  // GoString returns the string representation.
 10630  //
 10631  // API parameter values that are decorated as "sensitive" in the API will not
 10632  // be included in the string output. The member name will be present, but the
 10633  // value will be replaced with "sensitive".
 10634  func (s Intent) GoString() string {
 10635  	return s.String()
 10636  }
 10637  
 10638  // Validate inspects the fields of the type to determine if they are valid.
 10639  func (s *Intent) Validate() error {
 10640  	invalidParams := request.ErrInvalidParams{Context: "Intent"}
 10641  	if s.IntentName == nil {
 10642  		invalidParams.Add(request.NewErrParamRequired("IntentName"))
 10643  	}
 10644  	if s.IntentName != nil && len(*s.IntentName) < 1 {
 10645  		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
 10646  	}
 10647  	if s.IntentVersion == nil {
 10648  		invalidParams.Add(request.NewErrParamRequired("IntentVersion"))
 10649  	}
 10650  	if s.IntentVersion != nil && len(*s.IntentVersion) < 1 {
 10651  		invalidParams.Add(request.NewErrParamMinLen("IntentVersion", 1))
 10652  	}
 10653  
 10654  	if invalidParams.Len() > 0 {
 10655  		return invalidParams
 10656  	}
 10657  	return nil
 10658  }
 10659  
 10660  // SetIntentName sets the IntentName field's value.
 10661  func (s *Intent) SetIntentName(v string) *Intent {
 10662  	s.IntentName = &v
 10663  	return s
 10664  }
 10665  
 10666  // SetIntentVersion sets the IntentVersion field's value.
 10667  func (s *Intent) SetIntentVersion(v string) *Intent {
 10668  	s.IntentVersion = &v
 10669  	return s
 10670  }
 10671  
 10672  // Provides information about an intent.
 10673  type IntentMetadata struct {
 10674  	_ struct{} `type:"structure"`
 10675  
 10676  	// The date that the intent was created.
 10677  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 10678  
 10679  	// A description of the intent.
 10680  	Description *string `locationName:"description" type:"string"`
 10681  
 10682  	// The date that the intent was updated. When you create an intent, the creation
 10683  	// date and last updated date are the same.
 10684  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 10685  
 10686  	// The name of the intent.
 10687  	Name *string `locationName:"name" min:"1" type:"string"`
 10688  
 10689  	// The version of the intent.
 10690  	Version *string `locationName:"version" min:"1" type:"string"`
 10691  }
 10692  
 10693  // String returns the string representation.
 10694  //
 10695  // API parameter values that are decorated as "sensitive" in the API will not
 10696  // be included in the string output. The member name will be present, but the
 10697  // value will be replaced with "sensitive".
 10698  func (s IntentMetadata) String() string {
 10699  	return awsutil.Prettify(s)
 10700  }
 10701  
 10702  // GoString returns the string representation.
 10703  //
 10704  // API parameter values that are decorated as "sensitive" in the API will not
 10705  // be included in the string output. The member name will be present, but the
 10706  // value will be replaced with "sensitive".
 10707  func (s IntentMetadata) GoString() string {
 10708  	return s.String()
 10709  }
 10710  
 10711  // SetCreatedDate sets the CreatedDate field's value.
 10712  func (s *IntentMetadata) SetCreatedDate(v time.Time) *IntentMetadata {
 10713  	s.CreatedDate = &v
 10714  	return s
 10715  }
 10716  
 10717  // SetDescription sets the Description field's value.
 10718  func (s *IntentMetadata) SetDescription(v string) *IntentMetadata {
 10719  	s.Description = &v
 10720  	return s
 10721  }
 10722  
 10723  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 10724  func (s *IntentMetadata) SetLastUpdatedDate(v time.Time) *IntentMetadata {
 10725  	s.LastUpdatedDate = &v
 10726  	return s
 10727  }
 10728  
 10729  // SetName sets the Name field's value.
 10730  func (s *IntentMetadata) SetName(v string) *IntentMetadata {
 10731  	s.Name = &v
 10732  	return s
 10733  }
 10734  
 10735  // SetVersion sets the Version field's value.
 10736  func (s *IntentMetadata) SetVersion(v string) *IntentMetadata {
 10737  	s.Version = &v
 10738  	return s
 10739  }
 10740  
 10741  // An internal Amazon Lex error occurred. Try your request again.
 10742  type InternalFailureException struct {
 10743  	_            struct{}                  `type:"structure"`
 10744  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10745  
 10746  	Message_ *string `locationName:"message" type:"string"`
 10747  }
 10748  
 10749  // String returns the string representation.
 10750  //
 10751  // API parameter values that are decorated as "sensitive" in the API will not
 10752  // be included in the string output. The member name will be present, but the
 10753  // value will be replaced with "sensitive".
 10754  func (s InternalFailureException) String() string {
 10755  	return awsutil.Prettify(s)
 10756  }
 10757  
 10758  // GoString returns the string representation.
 10759  //
 10760  // API parameter values that are decorated as "sensitive" in the API will not
 10761  // be included in the string output. The member name will be present, but the
 10762  // value will be replaced with "sensitive".
 10763  func (s InternalFailureException) GoString() string {
 10764  	return s.String()
 10765  }
 10766  
 10767  func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
 10768  	return &InternalFailureException{
 10769  		RespMetadata: v,
 10770  	}
 10771  }
 10772  
 10773  // Code returns the exception type name.
 10774  func (s *InternalFailureException) Code() string {
 10775  	return "InternalFailureException"
 10776  }
 10777  
 10778  // Message returns the exception's message.
 10779  func (s *InternalFailureException) Message() string {
 10780  	if s.Message_ != nil {
 10781  		return *s.Message_
 10782  	}
 10783  	return ""
 10784  }
 10785  
 10786  // OrigErr always returns nil, satisfies awserr.Error interface.
 10787  func (s *InternalFailureException) OrigErr() error {
 10788  	return nil
 10789  }
 10790  
 10791  func (s *InternalFailureException) Error() string {
 10792  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 10793  }
 10794  
 10795  // Status code returns the HTTP status code for the request's response error.
 10796  func (s *InternalFailureException) StatusCode() int {
 10797  	return s.RespMetadata.StatusCode
 10798  }
 10799  
 10800  // RequestID returns the service's response RequestID for request.
 10801  func (s *InternalFailureException) RequestID() string {
 10802  	return s.RespMetadata.RequestID
 10803  }
 10804  
 10805  // Provides configuration information for the AMAZON.KendraSearchIntent intent.
 10806  // When you use this intent, Amazon Lex searches the specified Amazon Kendra
 10807  // index and returns documents from the index that match the user's utterance.
 10808  // For more information, see AMAZON.KendraSearchIntent (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
 10809  type KendraConfiguration struct {
 10810  	_ struct{} `type:"structure"`
 10811  
 10812  	// The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
 10813  	// AMAZON.KendraSearchIntent intent to search. The index must be in the same
 10814  	// account and Region as the Amazon Lex bot. If the Amazon Kendra index does
 10815  	// not exist, you get an exception when you call the PutIntent operation.
 10816  	//
 10817  	// KendraIndex is a required field
 10818  	KendraIndex *string `locationName:"kendraIndex" min:"20" type:"string" required:"true"`
 10819  
 10820  	// A query filter that Amazon Lex sends to Amazon Kendra to filter the response
 10821  	// from the query. The filter is in the format defined by Amazon Kendra. For
 10822  	// more information, see Filtering queries (http://docs.aws.amazon.com/kendra/latest/dg/filtering.html).
 10823  	//
 10824  	// You can override this filter string with a new filter string at runtime.
 10825  	QueryFilterString *string `locationName:"queryFilterString" type:"string"`
 10826  
 10827  	// The Amazon Resource Name (ARN) of an IAM role that has permission to search
 10828  	// the Amazon Kendra index. The role must be in the same account and Region
 10829  	// as the Amazon Lex bot. If the role does not exist, you get an exception when
 10830  	// you call the PutIntent operation.
 10831  	//
 10832  	// Role is a required field
 10833  	Role *string `locationName:"role" min:"20" type:"string" required:"true"`
 10834  }
 10835  
 10836  // String returns the string representation.
 10837  //
 10838  // API parameter values that are decorated as "sensitive" in the API will not
 10839  // be included in the string output. The member name will be present, but the
 10840  // value will be replaced with "sensitive".
 10841  func (s KendraConfiguration) String() string {
 10842  	return awsutil.Prettify(s)
 10843  }
 10844  
 10845  // GoString returns the string representation.
 10846  //
 10847  // API parameter values that are decorated as "sensitive" in the API will not
 10848  // be included in the string output. The member name will be present, but the
 10849  // value will be replaced with "sensitive".
 10850  func (s KendraConfiguration) GoString() string {
 10851  	return s.String()
 10852  }
 10853  
 10854  // Validate inspects the fields of the type to determine if they are valid.
 10855  func (s *KendraConfiguration) Validate() error {
 10856  	invalidParams := request.ErrInvalidParams{Context: "KendraConfiguration"}
 10857  	if s.KendraIndex == nil {
 10858  		invalidParams.Add(request.NewErrParamRequired("KendraIndex"))
 10859  	}
 10860  	if s.KendraIndex != nil && len(*s.KendraIndex) < 20 {
 10861  		invalidParams.Add(request.NewErrParamMinLen("KendraIndex", 20))
 10862  	}
 10863  	if s.Role == nil {
 10864  		invalidParams.Add(request.NewErrParamRequired("Role"))
 10865  	}
 10866  	if s.Role != nil && len(*s.Role) < 20 {
 10867  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
 10868  	}
 10869  
 10870  	if invalidParams.Len() > 0 {
 10871  		return invalidParams
 10872  	}
 10873  	return nil
 10874  }
 10875  
 10876  // SetKendraIndex sets the KendraIndex field's value.
 10877  func (s *KendraConfiguration) SetKendraIndex(v string) *KendraConfiguration {
 10878  	s.KendraIndex = &v
 10879  	return s
 10880  }
 10881  
 10882  // SetQueryFilterString sets the QueryFilterString field's value.
 10883  func (s *KendraConfiguration) SetQueryFilterString(v string) *KendraConfiguration {
 10884  	s.QueryFilterString = &v
 10885  	return s
 10886  }
 10887  
 10888  // SetRole sets the Role field's value.
 10889  func (s *KendraConfiguration) SetRole(v string) *KendraConfiguration {
 10890  	s.Role = &v
 10891  	return s
 10892  }
 10893  
 10894  // The request exceeded a limit. Try your request again.
 10895  type LimitExceededException struct {
 10896  	_            struct{}                  `type:"structure"`
 10897  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10898  
 10899  	Message_ *string `locationName:"message" type:"string"`
 10900  
 10901  	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
 10902  }
 10903  
 10904  // String returns the string representation.
 10905  //
 10906  // API parameter values that are decorated as "sensitive" in the API will not
 10907  // be included in the string output. The member name will be present, but the
 10908  // value will be replaced with "sensitive".
 10909  func (s LimitExceededException) String() string {
 10910  	return awsutil.Prettify(s)
 10911  }
 10912  
 10913  // GoString returns the string representation.
 10914  //
 10915  // API parameter values that are decorated as "sensitive" in the API will not
 10916  // be included in the string output. The member name will be present, but the
 10917  // value will be replaced with "sensitive".
 10918  func (s LimitExceededException) GoString() string {
 10919  	return s.String()
 10920  }
 10921  
 10922  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 10923  	return &LimitExceededException{
 10924  		RespMetadata: v,
 10925  	}
 10926  }
 10927  
 10928  // Code returns the exception type name.
 10929  func (s *LimitExceededException) Code() string {
 10930  	return "LimitExceededException"
 10931  }
 10932  
 10933  // Message returns the exception's message.
 10934  func (s *LimitExceededException) Message() string {
 10935  	if s.Message_ != nil {
 10936  		return *s.Message_
 10937  	}
 10938  	return ""
 10939  }
 10940  
 10941  // OrigErr always returns nil, satisfies awserr.Error interface.
 10942  func (s *LimitExceededException) OrigErr() error {
 10943  	return nil
 10944  }
 10945  
 10946  func (s *LimitExceededException) Error() string {
 10947  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10948  }
 10949  
 10950  // Status code returns the HTTP status code for the request's response error.
 10951  func (s *LimitExceededException) StatusCode() int {
 10952  	return s.RespMetadata.StatusCode
 10953  }
 10954  
 10955  // RequestID returns the service's response RequestID for request.
 10956  func (s *LimitExceededException) RequestID() string {
 10957  	return s.RespMetadata.RequestID
 10958  }
 10959  
 10960  type ListTagsForResourceInput struct {
 10961  	_ struct{} `type:"structure" nopayload:"true"`
 10962  
 10963  	// The Amazon Resource Name (ARN) of the resource to get a list of tags for.
 10964  	//
 10965  	// ResourceArn is a required field
 10966  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
 10967  }
 10968  
 10969  // String returns the string representation.
 10970  //
 10971  // API parameter values that are decorated as "sensitive" in the API will not
 10972  // be included in the string output. The member name will be present, but the
 10973  // value will be replaced with "sensitive".
 10974  func (s ListTagsForResourceInput) String() string {
 10975  	return awsutil.Prettify(s)
 10976  }
 10977  
 10978  // GoString returns the string representation.
 10979  //
 10980  // API parameter values that are decorated as "sensitive" in the API will not
 10981  // be included in the string output. The member name will be present, but the
 10982  // value will be replaced with "sensitive".
 10983  func (s ListTagsForResourceInput) GoString() string {
 10984  	return s.String()
 10985  }
 10986  
 10987  // Validate inspects the fields of the type to determine if they are valid.
 10988  func (s *ListTagsForResourceInput) Validate() error {
 10989  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 10990  	if s.ResourceArn == nil {
 10991  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 10992  	}
 10993  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 10994  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 10995  	}
 10996  
 10997  	if invalidParams.Len() > 0 {
 10998  		return invalidParams
 10999  	}
 11000  	return nil
 11001  }
 11002  
 11003  // SetResourceArn sets the ResourceArn field's value.
 11004  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
 11005  	s.ResourceArn = &v
 11006  	return s
 11007  }
 11008  
 11009  type ListTagsForResourceOutput struct {
 11010  	_ struct{} `type:"structure"`
 11011  
 11012  	// The tags associated with a resource.
 11013  	Tags []*Tag `locationName:"tags" type:"list"`
 11014  }
 11015  
 11016  // String returns the string representation.
 11017  //
 11018  // API parameter values that are decorated as "sensitive" in the API will not
 11019  // be included in the string output. The member name will be present, but the
 11020  // value will be replaced with "sensitive".
 11021  func (s ListTagsForResourceOutput) String() string {
 11022  	return awsutil.Prettify(s)
 11023  }
 11024  
 11025  // GoString returns the string representation.
 11026  //
 11027  // API parameter values that are decorated as "sensitive" in the API will not
 11028  // be included in the string output. The member name will be present, but the
 11029  // value will be replaced with "sensitive".
 11030  func (s ListTagsForResourceOutput) GoString() string {
 11031  	return s.String()
 11032  }
 11033  
 11034  // SetTags sets the Tags field's value.
 11035  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 11036  	s.Tags = v
 11037  	return s
 11038  }
 11039  
 11040  // Settings used to configure delivery mode and destination for conversation
 11041  // logs.
 11042  type LogSettingsRequest struct {
 11043  	_ struct{} `type:"structure"`
 11044  
 11045  	// Where the logs will be delivered. Text logs are delivered to a CloudWatch
 11046  	// Logs log group. Audio logs are delivered to an S3 bucket.
 11047  	//
 11048  	// Destination is a required field
 11049  	Destination *string `locationName:"destination" type:"string" required:"true" enum:"Destination"`
 11050  
 11051  	// The Amazon Resource Name (ARN) of the AWS KMS customer managed key for encrypting
 11052  	// audio logs delivered to an S3 bucket. The key does not apply to CloudWatch
 11053  	// Logs and is optional for S3 buckets.
 11054  	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
 11055  
 11056  	// The type of logging to enable. Text logs are delivered to a CloudWatch Logs
 11057  	// log group. Audio logs are delivered to an S3 bucket.
 11058  	//
 11059  	// LogType is a required field
 11060  	LogType *string `locationName:"logType" type:"string" required:"true" enum:"LogType"`
 11061  
 11062  	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
 11063  	// where the logs should be delivered.
 11064  	//
 11065  	// ResourceArn is a required field
 11066  	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
 11067  }
 11068  
 11069  // String returns the string representation.
 11070  //
 11071  // API parameter values that are decorated as "sensitive" in the API will not
 11072  // be included in the string output. The member name will be present, but the
 11073  // value will be replaced with "sensitive".
 11074  func (s LogSettingsRequest) String() string {
 11075  	return awsutil.Prettify(s)
 11076  }
 11077  
 11078  // GoString returns the string representation.
 11079  //
 11080  // API parameter values that are decorated as "sensitive" in the API will not
 11081  // be included in the string output. The member name will be present, but the
 11082  // value will be replaced with "sensitive".
 11083  func (s LogSettingsRequest) GoString() string {
 11084  	return s.String()
 11085  }
 11086  
 11087  // Validate inspects the fields of the type to determine if they are valid.
 11088  func (s *LogSettingsRequest) Validate() error {
 11089  	invalidParams := request.ErrInvalidParams{Context: "LogSettingsRequest"}
 11090  	if s.Destination == nil {
 11091  		invalidParams.Add(request.NewErrParamRequired("Destination"))
 11092  	}
 11093  	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
 11094  		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
 11095  	}
 11096  	if s.LogType == nil {
 11097  		invalidParams.Add(request.NewErrParamRequired("LogType"))
 11098  	}
 11099  	if s.ResourceArn == nil {
 11100  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 11101  	}
 11102  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 11103  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 11104  	}
 11105  
 11106  	if invalidParams.Len() > 0 {
 11107  		return invalidParams
 11108  	}
 11109  	return nil
 11110  }
 11111  
 11112  // SetDestination sets the Destination field's value.
 11113  func (s *LogSettingsRequest) SetDestination(v string) *LogSettingsRequest {
 11114  	s.Destination = &v
 11115  	return s
 11116  }
 11117  
 11118  // SetKmsKeyArn sets the KmsKeyArn field's value.
 11119  func (s *LogSettingsRequest) SetKmsKeyArn(v string) *LogSettingsRequest {
 11120  	s.KmsKeyArn = &v
 11121  	return s
 11122  }
 11123  
 11124  // SetLogType sets the LogType field's value.
 11125  func (s *LogSettingsRequest) SetLogType(v string) *LogSettingsRequest {
 11126  	s.LogType = &v
 11127  	return s
 11128  }
 11129  
 11130  // SetResourceArn sets the ResourceArn field's value.
 11131  func (s *LogSettingsRequest) SetResourceArn(v string) *LogSettingsRequest {
 11132  	s.ResourceArn = &v
 11133  	return s
 11134  }
 11135  
 11136  // The settings for conversation logs.
 11137  type LogSettingsResponse struct {
 11138  	_ struct{} `type:"structure"`
 11139  
 11140  	// The destination where logs are delivered.
 11141  	Destination *string `locationName:"destination" type:"string" enum:"Destination"`
 11142  
 11143  	// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an
 11144  	// S3 bucket.
 11145  	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
 11146  
 11147  	// The type of logging that is enabled.
 11148  	LogType *string `locationName:"logType" type:"string" enum:"LogType"`
 11149  
 11150  	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
 11151  	// where the logs are delivered.
 11152  	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
 11153  
 11154  	// The resource prefix is the first part of the S3 object key within the S3
 11155  	// bucket that you specified to contain audio logs. For CloudWatch Logs it is
 11156  	// the prefix of the log stream name within the log group that you specified.
 11157  	ResourcePrefix *string `locationName:"resourcePrefix" type:"string"`
 11158  }
 11159  
 11160  // String returns the string representation.
 11161  //
 11162  // API parameter values that are decorated as "sensitive" in the API will not
 11163  // be included in the string output. The member name will be present, but the
 11164  // value will be replaced with "sensitive".
 11165  func (s LogSettingsResponse) String() string {
 11166  	return awsutil.Prettify(s)
 11167  }
 11168  
 11169  // GoString returns the string representation.
 11170  //
 11171  // API parameter values that are decorated as "sensitive" in the API will not
 11172  // be included in the string output. The member name will be present, but the
 11173  // value will be replaced with "sensitive".
 11174  func (s LogSettingsResponse) GoString() string {
 11175  	return s.String()
 11176  }
 11177  
 11178  // SetDestination sets the Destination field's value.
 11179  func (s *LogSettingsResponse) SetDestination(v string) *LogSettingsResponse {
 11180  	s.Destination = &v
 11181  	return s
 11182  }
 11183  
 11184  // SetKmsKeyArn sets the KmsKeyArn field's value.
 11185  func (s *LogSettingsResponse) SetKmsKeyArn(v string) *LogSettingsResponse {
 11186  	s.KmsKeyArn = &v
 11187  	return s
 11188  }
 11189  
 11190  // SetLogType sets the LogType field's value.
 11191  func (s *LogSettingsResponse) SetLogType(v string) *LogSettingsResponse {
 11192  	s.LogType = &v
 11193  	return s
 11194  }
 11195  
 11196  // SetResourceArn sets the ResourceArn field's value.
 11197  func (s *LogSettingsResponse) SetResourceArn(v string) *LogSettingsResponse {
 11198  	s.ResourceArn = &v
 11199  	return s
 11200  }
 11201  
 11202  // SetResourcePrefix sets the ResourcePrefix field's value.
 11203  func (s *LogSettingsResponse) SetResourcePrefix(v string) *LogSettingsResponse {
 11204  	s.ResourcePrefix = &v
 11205  	return s
 11206  }
 11207  
 11208  // The message object that provides the message text and its type.
 11209  type Message struct {
 11210  	_ struct{} `type:"structure"`
 11211  
 11212  	// The text of the message.
 11213  	//
 11214  	// Content is a required field
 11215  	Content *string `locationName:"content" min:"1" type:"string" required:"true"`
 11216  
 11217  	// The content type of the message string.
 11218  	//
 11219  	// ContentType is a required field
 11220  	ContentType *string `locationName:"contentType" type:"string" required:"true" enum:"ContentType"`
 11221  
 11222  	// Identifies the message group that the message belongs to. When a group is
 11223  	// assigned to a message, Amazon Lex returns one message from each group in
 11224  	// the response.
 11225  	GroupNumber *int64 `locationName:"groupNumber" min:"1" type:"integer"`
 11226  }
 11227  
 11228  // String returns the string representation.
 11229  //
 11230  // API parameter values that are decorated as "sensitive" in the API will not
 11231  // be included in the string output. The member name will be present, but the
 11232  // value will be replaced with "sensitive".
 11233  func (s Message) String() string {
 11234  	return awsutil.Prettify(s)
 11235  }
 11236  
 11237  // GoString returns the string representation.
 11238  //
 11239  // API parameter values that are decorated as "sensitive" in the API will not
 11240  // be included in the string output. The member name will be present, but the
 11241  // value will be replaced with "sensitive".
 11242  func (s Message) GoString() string {
 11243  	return s.String()
 11244  }
 11245  
 11246  // Validate inspects the fields of the type to determine if they are valid.
 11247  func (s *Message) Validate() error {
 11248  	invalidParams := request.ErrInvalidParams{Context: "Message"}
 11249  	if s.Content == nil {
 11250  		invalidParams.Add(request.NewErrParamRequired("Content"))
 11251  	}
 11252  	if s.Content != nil && len(*s.Content) < 1 {
 11253  		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
 11254  	}
 11255  	if s.ContentType == nil {
 11256  		invalidParams.Add(request.NewErrParamRequired("ContentType"))
 11257  	}
 11258  	if s.GroupNumber != nil && *s.GroupNumber < 1 {
 11259  		invalidParams.Add(request.NewErrParamMinValue("GroupNumber", 1))
 11260  	}
 11261  
 11262  	if invalidParams.Len() > 0 {
 11263  		return invalidParams
 11264  	}
 11265  	return nil
 11266  }
 11267  
 11268  // SetContent sets the Content field's value.
 11269  func (s *Message) SetContent(v string) *Message {
 11270  	s.Content = &v
 11271  	return s
 11272  }
 11273  
 11274  // SetContentType sets the ContentType field's value.
 11275  func (s *Message) SetContentType(v string) *Message {
 11276  	s.ContentType = &v
 11277  	return s
 11278  }
 11279  
 11280  // SetGroupNumber sets the GroupNumber field's value.
 11281  func (s *Message) SetGroupNumber(v int64) *Message {
 11282  	s.GroupNumber = &v
 11283  	return s
 11284  }
 11285  
 11286  // Provides information about alerts and warnings that Amazon Lex sends during
 11287  // a migration. The alerts include information about how to resolve the issue.
 11288  type MigrationAlert struct {
 11289  	_ struct{} `type:"structure"`
 11290  
 11291  	// Additional details about the alert.
 11292  	Details []*string `locationName:"details" type:"list"`
 11293  
 11294  	// A message that describes why the alert was issued.
 11295  	Message *string `locationName:"message" type:"string"`
 11296  
 11297  	// A link to the Amazon Lex documentation that describes how to resolve the
 11298  	// alert.
 11299  	ReferenceURLs []*string `locationName:"referenceURLs" type:"list"`
 11300  
 11301  	// The type of alert. There are two kinds of alerts:
 11302  	//
 11303  	//    * ERROR - There was an issue with the migration that can't be resolved.
 11304  	//    The migration stops.
 11305  	//
 11306  	//    * WARN - There was an issue with the migration that requires manual changes
 11307  	//    to the new Amazon Lex V2 bot. The migration continues.
 11308  	Type *string `locationName:"type" type:"string" enum:"MigrationAlertType"`
 11309  }
 11310  
 11311  // String returns the string representation.
 11312  //
 11313  // API parameter values that are decorated as "sensitive" in the API will not
 11314  // be included in the string output. The member name will be present, but the
 11315  // value will be replaced with "sensitive".
 11316  func (s MigrationAlert) String() string {
 11317  	return awsutil.Prettify(s)
 11318  }
 11319  
 11320  // GoString returns the string representation.
 11321  //
 11322  // API parameter values that are decorated as "sensitive" in the API will not
 11323  // be included in the string output. The member name will be present, but the
 11324  // value will be replaced with "sensitive".
 11325  func (s MigrationAlert) GoString() string {
 11326  	return s.String()
 11327  }
 11328  
 11329  // SetDetails sets the Details field's value.
 11330  func (s *MigrationAlert) SetDetails(v []*string) *MigrationAlert {
 11331  	s.Details = v
 11332  	return s
 11333  }
 11334  
 11335  // SetMessage sets the Message field's value.
 11336  func (s *MigrationAlert) SetMessage(v string) *MigrationAlert {
 11337  	s.Message = &v
 11338  	return s
 11339  }
 11340  
 11341  // SetReferenceURLs sets the ReferenceURLs field's value.
 11342  func (s *MigrationAlert) SetReferenceURLs(v []*string) *MigrationAlert {
 11343  	s.ReferenceURLs = v
 11344  	return s
 11345  }
 11346  
 11347  // SetType sets the Type field's value.
 11348  func (s *MigrationAlert) SetType(v string) *MigrationAlert {
 11349  	s.Type = &v
 11350  	return s
 11351  }
 11352  
 11353  // Provides information about migrating a bot from Amazon Lex V1 to Amazon Lex
 11354  // V2.
 11355  type MigrationSummary struct {
 11356  	_ struct{} `type:"structure"`
 11357  
 11358  	// The unique identifier that Amazon Lex assigned to the migration.
 11359  	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
 11360  
 11361  	// The status of the operation. When the status is COMPLETE the bot is available
 11362  	// in Amazon Lex V2. There may be alerts and warnings that need to be resolved
 11363  	// to complete the migration.
 11364  	MigrationStatus *string `locationName:"migrationStatus" type:"string" enum:"MigrationStatus"`
 11365  
 11366  	// The strategy used to conduct the migration.
 11367  	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
 11368  
 11369  	// The date and time that the migration started.
 11370  	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
 11371  
 11372  	// The locale of the Amazon Lex V1 bot that is the source of the migration.
 11373  	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
 11374  
 11375  	// The name of the Amazon Lex V1 bot that is the source of the migration.
 11376  	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
 11377  
 11378  	// The version of the Amazon Lex V1 bot that is the source of the migration.
 11379  	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
 11380  
 11381  	// The unique identifier of the Amazon Lex V2 that is the destination of the
 11382  	// migration.
 11383  	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
 11384  
 11385  	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
 11386  	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
 11387  }
 11388  
 11389  // String returns the string representation.
 11390  //
 11391  // API parameter values that are decorated as "sensitive" in the API will not
 11392  // be included in the string output. The member name will be present, but the
 11393  // value will be replaced with "sensitive".
 11394  func (s MigrationSummary) String() string {
 11395  	return awsutil.Prettify(s)
 11396  }
 11397  
 11398  // GoString returns the string representation.
 11399  //
 11400  // API parameter values that are decorated as "sensitive" in the API will not
 11401  // be included in the string output. The member name will be present, but the
 11402  // value will be replaced with "sensitive".
 11403  func (s MigrationSummary) GoString() string {
 11404  	return s.String()
 11405  }
 11406  
 11407  // SetMigrationId sets the MigrationId field's value.
 11408  func (s *MigrationSummary) SetMigrationId(v string) *MigrationSummary {
 11409  	s.MigrationId = &v
 11410  	return s
 11411  }
 11412  
 11413  // SetMigrationStatus sets the MigrationStatus field's value.
 11414  func (s *MigrationSummary) SetMigrationStatus(v string) *MigrationSummary {
 11415  	s.MigrationStatus = &v
 11416  	return s
 11417  }
 11418  
 11419  // SetMigrationStrategy sets the MigrationStrategy field's value.
 11420  func (s *MigrationSummary) SetMigrationStrategy(v string) *MigrationSummary {
 11421  	s.MigrationStrategy = &v
 11422  	return s
 11423  }
 11424  
 11425  // SetMigrationTimestamp sets the MigrationTimestamp field's value.
 11426  func (s *MigrationSummary) SetMigrationTimestamp(v time.Time) *MigrationSummary {
 11427  	s.MigrationTimestamp = &v
 11428  	return s
 11429  }
 11430  
 11431  // SetV1BotLocale sets the V1BotLocale field's value.
 11432  func (s *MigrationSummary) SetV1BotLocale(v string) *MigrationSummary {
 11433  	s.V1BotLocale = &v
 11434  	return s
 11435  }
 11436  
 11437  // SetV1BotName sets the V1BotName field's value.
 11438  func (s *MigrationSummary) SetV1BotName(v string) *MigrationSummary {
 11439  	s.V1BotName = &v
 11440  	return s
 11441  }
 11442  
 11443  // SetV1BotVersion sets the V1BotVersion field's value.
 11444  func (s *MigrationSummary) SetV1BotVersion(v string) *MigrationSummary {
 11445  	s.V1BotVersion = &v
 11446  	return s
 11447  }
 11448  
 11449  // SetV2BotId sets the V2BotId field's value.
 11450  func (s *MigrationSummary) SetV2BotId(v string) *MigrationSummary {
 11451  	s.V2BotId = &v
 11452  	return s
 11453  }
 11454  
 11455  // SetV2BotRole sets the V2BotRole field's value.
 11456  func (s *MigrationSummary) SetV2BotRole(v string) *MigrationSummary {
 11457  	s.V2BotRole = &v
 11458  	return s
 11459  }
 11460  
 11461  // The resource specified in the request was not found. Check the resource and
 11462  // try again.
 11463  type NotFoundException struct {
 11464  	_            struct{}                  `type:"structure"`
 11465  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11466  
 11467  	Message_ *string `locationName:"message" type:"string"`
 11468  }
 11469  
 11470  // String returns the string representation.
 11471  //
 11472  // API parameter values that are decorated as "sensitive" in the API will not
 11473  // be included in the string output. The member name will be present, but the
 11474  // value will be replaced with "sensitive".
 11475  func (s NotFoundException) String() string {
 11476  	return awsutil.Prettify(s)
 11477  }
 11478  
 11479  // GoString returns the string representation.
 11480  //
 11481  // API parameter values that are decorated as "sensitive" in the API will not
 11482  // be included in the string output. The member name will be present, but the
 11483  // value will be replaced with "sensitive".
 11484  func (s NotFoundException) GoString() string {
 11485  	return s.String()
 11486  }
 11487  
 11488  func newErrorNotFoundException(v protocol.ResponseMetadata) error {
 11489  	return &NotFoundException{
 11490  		RespMetadata: v,
 11491  	}
 11492  }
 11493  
 11494  // Code returns the exception type name.
 11495  func (s *NotFoundException) Code() string {
 11496  	return "NotFoundException"
 11497  }
 11498  
 11499  // Message returns the exception's message.
 11500  func (s *NotFoundException) Message() string {
 11501  	if s.Message_ != nil {
 11502  		return *s.Message_
 11503  	}
 11504  	return ""
 11505  }
 11506  
 11507  // OrigErr always returns nil, satisfies awserr.Error interface.
 11508  func (s *NotFoundException) OrigErr() error {
 11509  	return nil
 11510  }
 11511  
 11512  func (s *NotFoundException) Error() string {
 11513  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11514  }
 11515  
 11516  // Status code returns the HTTP status code for the request's response error.
 11517  func (s *NotFoundException) StatusCode() int {
 11518  	return s.RespMetadata.StatusCode
 11519  }
 11520  
 11521  // RequestID returns the service's response RequestID for request.
 11522  func (s *NotFoundException) RequestID() string {
 11523  	return s.RespMetadata.RequestID
 11524  }
 11525  
 11526  // The specification of an output context that is set when an intent is fulfilled.
 11527  type OutputContext struct {
 11528  	_ struct{} `type:"structure"`
 11529  
 11530  	// The name of the context.
 11531  	//
 11532  	// Name is a required field
 11533  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
 11534  
 11535  	// The number of seconds that the context should be active after it is first
 11536  	// sent in a PostContent or PostText response. You can set the value between
 11537  	// 5 and 86,400 seconds (24 hours).
 11538  	//
 11539  	// TimeToLiveInSeconds is a required field
 11540  	TimeToLiveInSeconds *int64 `locationName:"timeToLiveInSeconds" min:"5" type:"integer" required:"true"`
 11541  
 11542  	// The number of conversation turns that the context should be active. A conversation
 11543  	// turn is one PostContent or PostText request and the corresponding response
 11544  	// from Amazon Lex.
 11545  	//
 11546  	// TurnsToLive is a required field
 11547  	TurnsToLive *int64 `locationName:"turnsToLive" min:"1" type:"integer" required:"true"`
 11548  }
 11549  
 11550  // String returns the string representation.
 11551  //
 11552  // API parameter values that are decorated as "sensitive" in the API will not
 11553  // be included in the string output. The member name will be present, but the
 11554  // value will be replaced with "sensitive".
 11555  func (s OutputContext) String() string {
 11556  	return awsutil.Prettify(s)
 11557  }
 11558  
 11559  // GoString returns the string representation.
 11560  //
 11561  // API parameter values that are decorated as "sensitive" in the API will not
 11562  // be included in the string output. The member name will be present, but the
 11563  // value will be replaced with "sensitive".
 11564  func (s OutputContext) GoString() string {
 11565  	return s.String()
 11566  }
 11567  
 11568  // Validate inspects the fields of the type to determine if they are valid.
 11569  func (s *OutputContext) Validate() error {
 11570  	invalidParams := request.ErrInvalidParams{Context: "OutputContext"}
 11571  	if s.Name == nil {
 11572  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11573  	}
 11574  	if s.Name != nil && len(*s.Name) < 1 {
 11575  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11576  	}
 11577  	if s.TimeToLiveInSeconds == nil {
 11578  		invalidParams.Add(request.NewErrParamRequired("TimeToLiveInSeconds"))
 11579  	}
 11580  	if s.TimeToLiveInSeconds != nil && *s.TimeToLiveInSeconds < 5 {
 11581  		invalidParams.Add(request.NewErrParamMinValue("TimeToLiveInSeconds", 5))
 11582  	}
 11583  	if s.TurnsToLive == nil {
 11584  		invalidParams.Add(request.NewErrParamRequired("TurnsToLive"))
 11585  	}
 11586  	if s.TurnsToLive != nil && *s.TurnsToLive < 1 {
 11587  		invalidParams.Add(request.NewErrParamMinValue("TurnsToLive", 1))
 11588  	}
 11589  
 11590  	if invalidParams.Len() > 0 {
 11591  		return invalidParams
 11592  	}
 11593  	return nil
 11594  }
 11595  
 11596  // SetName sets the Name field's value.
 11597  func (s *OutputContext) SetName(v string) *OutputContext {
 11598  	s.Name = &v
 11599  	return s
 11600  }
 11601  
 11602  // SetTimeToLiveInSeconds sets the TimeToLiveInSeconds field's value.
 11603  func (s *OutputContext) SetTimeToLiveInSeconds(v int64) *OutputContext {
 11604  	s.TimeToLiveInSeconds = &v
 11605  	return s
 11606  }
 11607  
 11608  // SetTurnsToLive sets the TurnsToLive field's value.
 11609  func (s *OutputContext) SetTurnsToLive(v int64) *OutputContext {
 11610  	s.TurnsToLive = &v
 11611  	return s
 11612  }
 11613  
 11614  // The checksum of the resource that you are trying to change does not match
 11615  // the checksum in the request. Check the resource's checksum and try again.
 11616  type PreconditionFailedException struct {
 11617  	_            struct{}                  `type:"structure"`
 11618  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11619  
 11620  	Message_ *string `locationName:"message" type:"string"`
 11621  }
 11622  
 11623  // String returns the string representation.
 11624  //
 11625  // API parameter values that are decorated as "sensitive" in the API will not
 11626  // be included in the string output. The member name will be present, but the
 11627  // value will be replaced with "sensitive".
 11628  func (s PreconditionFailedException) String() string {
 11629  	return awsutil.Prettify(s)
 11630  }
 11631  
 11632  // GoString returns the string representation.
 11633  //
 11634  // API parameter values that are decorated as "sensitive" in the API will not
 11635  // be included in the string output. The member name will be present, but the
 11636  // value will be replaced with "sensitive".
 11637  func (s PreconditionFailedException) GoString() string {
 11638  	return s.String()
 11639  }
 11640  
 11641  func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
 11642  	return &PreconditionFailedException{
 11643  		RespMetadata: v,
 11644  	}
 11645  }
 11646  
 11647  // Code returns the exception type name.
 11648  func (s *PreconditionFailedException) Code() string {
 11649  	return "PreconditionFailedException"
 11650  }
 11651  
 11652  // Message returns the exception's message.
 11653  func (s *PreconditionFailedException) Message() string {
 11654  	if s.Message_ != nil {
 11655  		return *s.Message_
 11656  	}
 11657  	return ""
 11658  }
 11659  
 11660  // OrigErr always returns nil, satisfies awserr.Error interface.
 11661  func (s *PreconditionFailedException) OrigErr() error {
 11662  	return nil
 11663  }
 11664  
 11665  func (s *PreconditionFailedException) Error() string {
 11666  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11667  }
 11668  
 11669  // Status code returns the HTTP status code for the request's response error.
 11670  func (s *PreconditionFailedException) StatusCode() int {
 11671  	return s.RespMetadata.StatusCode
 11672  }
 11673  
 11674  // RequestID returns the service's response RequestID for request.
 11675  func (s *PreconditionFailedException) RequestID() string {
 11676  	return s.RespMetadata.RequestID
 11677  }
 11678  
 11679  // Obtains information from the user. To define a prompt, provide one or more
 11680  // messages and specify the number of attempts to get information from the user.
 11681  // If you provide more than one message, Amazon Lex chooses one of the messages
 11682  // to use to prompt the user. For more information, see how-it-works.
 11683  type Prompt struct {
 11684  	_ struct{} `type:"structure"`
 11685  
 11686  	// The number of times to prompt the user for information.
 11687  	//
 11688  	// MaxAttempts is a required field
 11689  	MaxAttempts *int64 `locationName:"maxAttempts" min:"1" type:"integer" required:"true"`
 11690  
 11691  	// An array of objects, each of which provides a message string and its type.
 11692  	// You can specify the message string in plain text or in Speech Synthesis Markup
 11693  	// Language (SSML).
 11694  	//
 11695  	// Messages is a required field
 11696  	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
 11697  
 11698  	// A response card. Amazon Lex uses this prompt at runtime, in the PostText
 11699  	// API response. It substitutes session attributes and slot values for placeholders
 11700  	// in the response card. For more information, see ex-resp-card.
 11701  	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
 11702  }
 11703  
 11704  // String returns the string representation.
 11705  //
 11706  // API parameter values that are decorated as "sensitive" in the API will not
 11707  // be included in the string output. The member name will be present, but the
 11708  // value will be replaced with "sensitive".
 11709  func (s Prompt) String() string {
 11710  	return awsutil.Prettify(s)
 11711  }
 11712  
 11713  // GoString returns the string representation.
 11714  //
 11715  // API parameter values that are decorated as "sensitive" in the API will not
 11716  // be included in the string output. The member name will be present, but the
 11717  // value will be replaced with "sensitive".
 11718  func (s Prompt) GoString() string {
 11719  	return s.String()
 11720  }
 11721  
 11722  // Validate inspects the fields of the type to determine if they are valid.
 11723  func (s *Prompt) Validate() error {
 11724  	invalidParams := request.ErrInvalidParams{Context: "Prompt"}
 11725  	if s.MaxAttempts == nil {
 11726  		invalidParams.Add(request.NewErrParamRequired("MaxAttempts"))
 11727  	}
 11728  	if s.MaxAttempts != nil && *s.MaxAttempts < 1 {
 11729  		invalidParams.Add(request.NewErrParamMinValue("MaxAttempts", 1))
 11730  	}
 11731  	if s.Messages == nil {
 11732  		invalidParams.Add(request.NewErrParamRequired("Messages"))
 11733  	}
 11734  	if s.Messages != nil && len(s.Messages) < 1 {
 11735  		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
 11736  	}
 11737  	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
 11738  		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
 11739  	}
 11740  	if s.Messages != nil {
 11741  		for i, v := range s.Messages {
 11742  			if v == nil {
 11743  				continue
 11744  			}
 11745  			if err := v.Validate(); err != nil {
 11746  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
 11747  			}
 11748  		}
 11749  	}
 11750  
 11751  	if invalidParams.Len() > 0 {
 11752  		return invalidParams
 11753  	}
 11754  	return nil
 11755  }
 11756  
 11757  // SetMaxAttempts sets the MaxAttempts field's value.
 11758  func (s *Prompt) SetMaxAttempts(v int64) *Prompt {
 11759  	s.MaxAttempts = &v
 11760  	return s
 11761  }
 11762  
 11763  // SetMessages sets the Messages field's value.
 11764  func (s *Prompt) SetMessages(v []*Message) *Prompt {
 11765  	s.Messages = v
 11766  	return s
 11767  }
 11768  
 11769  // SetResponseCard sets the ResponseCard field's value.
 11770  func (s *Prompt) SetResponseCard(v string) *Prompt {
 11771  	s.ResponseCard = &v
 11772  	return s
 11773  }
 11774  
 11775  type PutBotAliasInput struct {
 11776  	_ struct{} `type:"structure"`
 11777  
 11778  	// The name of the bot.
 11779  	//
 11780  	// BotName is a required field
 11781  	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
 11782  
 11783  	// The version of the bot.
 11784  	//
 11785  	// BotVersion is a required field
 11786  	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
 11787  
 11788  	// Identifies a specific revision of the $LATEST version.
 11789  	//
 11790  	// When you create a new bot alias, leave the checksum field blank. If you specify
 11791  	// a checksum you get a BadRequestException exception.
 11792  	//
 11793  	// When you want to update a bot alias, set the checksum field to the checksum
 11794  	// of the most recent revision of the $LATEST version. If you don't specify
 11795  	// the checksum field, or if the checksum does not match the $LATEST version,
 11796  	// you get a PreconditionFailedException exception.
 11797  	Checksum *string `locationName:"checksum" type:"string"`
 11798  
 11799  	// Settings for conversation logs for the alias.
 11800  	ConversationLogs *ConversationLogsRequest `locationName:"conversationLogs" type:"structure"`
 11801  
 11802  	// A description of the alias.
 11803  	Description *string `locationName:"description" type:"string"`
 11804  
 11805  	// The name of the alias. The name is not case sensitive.
 11806  	//
 11807  	// Name is a required field
 11808  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 11809  
 11810  	// A list of tags to add to the bot alias. You can only add tags when you create
 11811  	// an alias, you can't use the PutBotAlias operation to update the tags on a
 11812  	// bot alias. To update tags, use the TagResource operation.
 11813  	Tags []*Tag `locationName:"tags" type:"list"`
 11814  }
 11815  
 11816  // String returns the string representation.
 11817  //
 11818  // API parameter values that are decorated as "sensitive" in the API will not
 11819  // be included in the string output. The member name will be present, but the
 11820  // value will be replaced with "sensitive".
 11821  func (s PutBotAliasInput) String() string {
 11822  	return awsutil.Prettify(s)
 11823  }
 11824  
 11825  // GoString returns the string representation.
 11826  //
 11827  // API parameter values that are decorated as "sensitive" in the API will not
 11828  // be included in the string output. The member name will be present, but the
 11829  // value will be replaced with "sensitive".
 11830  func (s PutBotAliasInput) GoString() string {
 11831  	return s.String()
 11832  }
 11833  
 11834  // Validate inspects the fields of the type to determine if they are valid.
 11835  func (s *PutBotAliasInput) Validate() error {
 11836  	invalidParams := request.ErrInvalidParams{Context: "PutBotAliasInput"}
 11837  	if s.BotName == nil {
 11838  		invalidParams.Add(request.NewErrParamRequired("BotName"))
 11839  	}
 11840  	if s.BotName != nil && len(*s.BotName) < 2 {
 11841  		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
 11842  	}
 11843  	if s.BotVersion == nil {
 11844  		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
 11845  	}
 11846  	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
 11847  		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
 11848  	}
 11849  	if s.Name == nil {
 11850  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11851  	}
 11852  	if s.Name != nil && len(*s.Name) < 1 {
 11853  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11854  	}
 11855  	if s.ConversationLogs != nil {
 11856  		if err := s.ConversationLogs.Validate(); err != nil {
 11857  			invalidParams.AddNested("ConversationLogs", err.(request.ErrInvalidParams))
 11858  		}
 11859  	}
 11860  	if s.Tags != nil {
 11861  		for i, v := range s.Tags {
 11862  			if v == nil {
 11863  				continue
 11864  			}
 11865  			if err := v.Validate(); err != nil {
 11866  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11867  			}
 11868  		}
 11869  	}
 11870  
 11871  	if invalidParams.Len() > 0 {
 11872  		return invalidParams
 11873  	}
 11874  	return nil
 11875  }
 11876  
 11877  // SetBotName sets the BotName field's value.
 11878  func (s *PutBotAliasInput) SetBotName(v string) *PutBotAliasInput {
 11879  	s.BotName = &v
 11880  	return s
 11881  }
 11882  
 11883  // SetBotVersion sets the BotVersion field's value.
 11884  func (s *PutBotAliasInput) SetBotVersion(v string) *PutBotAliasInput {
 11885  	s.BotVersion = &v
 11886  	return s
 11887  }
 11888  
 11889  // SetChecksum sets the Checksum field's value.
 11890  func (s *PutBotAliasInput) SetChecksum(v string) *PutBotAliasInput {
 11891  	s.Checksum = &v
 11892  	return s
 11893  }
 11894  
 11895  // SetConversationLogs sets the ConversationLogs field's value.
 11896  func (s *PutBotAliasInput) SetConversationLogs(v *ConversationLogsRequest) *PutBotAliasInput {
 11897  	s.ConversationLogs = v
 11898  	return s
 11899  }
 11900  
 11901  // SetDescription sets the Description field's value.
 11902  func (s *PutBotAliasInput) SetDescription(v string) *PutBotAliasInput {
 11903  	s.Description = &v
 11904  	return s
 11905  }
 11906  
 11907  // SetName sets the Name field's value.
 11908  func (s *PutBotAliasInput) SetName(v string) *PutBotAliasInput {
 11909  	s.Name = &v
 11910  	return s
 11911  }
 11912  
 11913  // SetTags sets the Tags field's value.
 11914  func (s *PutBotAliasInput) SetTags(v []*Tag) *PutBotAliasInput {
 11915  	s.Tags = v
 11916  	return s
 11917  }
 11918  
 11919  type PutBotAliasOutput struct {
 11920  	_ struct{} `type:"structure"`
 11921  
 11922  	// The name of the bot that the alias points to.
 11923  	BotName *string `locationName:"botName" min:"2" type:"string"`
 11924  
 11925  	// The version of the bot that the alias points to.
 11926  	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
 11927  
 11928  	// The checksum for the current version of the alias.
 11929  	Checksum *string `locationName:"checksum" type:"string"`
 11930  
 11931  	// The settings that determine how Amazon Lex uses conversation logs for the
 11932  	// alias.
 11933  	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
 11934  
 11935  	// The date that the bot alias was created.
 11936  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 11937  
 11938  	// A description of the alias.
 11939  	Description *string `locationName:"description" type:"string"`
 11940  
 11941  	// The date that the bot alias was updated. When you create a resource, the
 11942  	// creation date and the last updated date are the same.
 11943  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 11944  
 11945  	// The name of the alias.
 11946  	Name *string `locationName:"name" min:"1" type:"string"`
 11947  
 11948  	// A list of tags associated with a bot.
 11949  	Tags []*Tag `locationName:"tags" type:"list"`
 11950  }
 11951  
 11952  // String returns the string representation.
 11953  //
 11954  // API parameter values that are decorated as "sensitive" in the API will not
 11955  // be included in the string output. The member name will be present, but the
 11956  // value will be replaced with "sensitive".
 11957  func (s PutBotAliasOutput) String() string {
 11958  	return awsutil.Prettify(s)
 11959  }
 11960  
 11961  // GoString returns the string representation.
 11962  //
 11963  // API parameter values that are decorated as "sensitive" in the API will not
 11964  // be included in the string output. The member name will be present, but the
 11965  // value will be replaced with "sensitive".
 11966  func (s PutBotAliasOutput) GoString() string {
 11967  	return s.String()
 11968  }
 11969  
 11970  // SetBotName sets the BotName field's value.
 11971  func (s *PutBotAliasOutput) SetBotName(v string) *PutBotAliasOutput {
 11972  	s.BotName = &v
 11973  	return s
 11974  }
 11975  
 11976  // SetBotVersion sets the BotVersion field's value.
 11977  func (s *PutBotAliasOutput) SetBotVersion(v string) *PutBotAliasOutput {
 11978  	s.BotVersion = &v
 11979  	return s
 11980  }
 11981  
 11982  // SetChecksum sets the Checksum field's value.
 11983  func (s *PutBotAliasOutput) SetChecksum(v string) *PutBotAliasOutput {
 11984  	s.Checksum = &v
 11985  	return s
 11986  }
 11987  
 11988  // SetConversationLogs sets the ConversationLogs field's value.
 11989  func (s *PutBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *PutBotAliasOutput {
 11990  	s.ConversationLogs = v
 11991  	return s
 11992  }
 11993  
 11994  // SetCreatedDate sets the CreatedDate field's value.
 11995  func (s *PutBotAliasOutput) SetCreatedDate(v time.Time) *PutBotAliasOutput {
 11996  	s.CreatedDate = &v
 11997  	return s
 11998  }
 11999  
 12000  // SetDescription sets the Description field's value.
 12001  func (s *PutBotAliasOutput) SetDescription(v string) *PutBotAliasOutput {
 12002  	s.Description = &v
 12003  	return s
 12004  }
 12005  
 12006  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 12007  func (s *PutBotAliasOutput) SetLastUpdatedDate(v time.Time) *PutBotAliasOutput {
 12008  	s.LastUpdatedDate = &v
 12009  	return s
 12010  }
 12011  
 12012  // SetName sets the Name field's value.
 12013  func (s *PutBotAliasOutput) SetName(v string) *PutBotAliasOutput {
 12014  	s.Name = &v
 12015  	return s
 12016  }
 12017  
 12018  // SetTags sets the Tags field's value.
 12019  func (s *PutBotAliasOutput) SetTags(v []*Tag) *PutBotAliasOutput {
 12020  	s.Tags = v
 12021  	return s
 12022  }
 12023  
 12024  type PutBotInput struct {
 12025  	_ struct{} `type:"structure"`
 12026  
 12027  	// When Amazon Lex can't understand the user's input in context, it tries to
 12028  	// elicit the information a few times. After that, Amazon Lex sends the message
 12029  	// defined in abortStatement to the user, and then cancels the conversation.
 12030  	// To set the number of retries, use the valueElicitationPrompt field for the
 12031  	// slot type.
 12032  	//
 12033  	// For example, in a pizza ordering bot, Amazon Lex might ask a user "What type
 12034  	// of crust would you like?" If the user's response is not one of the expected
 12035  	// responses (for example, "thin crust, "deep dish," etc.), Amazon Lex tries
 12036  	// to elicit a correct response a few more times.
 12037  	//
 12038  	// For example, in a pizza ordering application, OrderPizza might be one of
 12039  	// the intents. This intent might require the CrustType slot. You specify the
 12040  	// valueElicitationPrompt field when you create the CrustType slot.
 12041  	//
 12042  	// If you have defined a fallback intent the cancel statement will not be sent
 12043  	// to the user, the fallback intent is used instead. For more information, see
 12044  	// AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
 12045  	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
 12046  
 12047  	// Identifies a specific revision of the $LATEST version.
 12048  	//
 12049  	// When you create a new bot, leave the checksum field blank. If you specify
 12050  	// a checksum you get a BadRequestException exception.
 12051  	//
 12052  	// When you want to update a bot, set the checksum field to the checksum of
 12053  	// the most recent revision of the $LATEST version. If you don't specify the
 12054  	// checksum field, or if the checksum does not match the $LATEST version, you
 12055  	// get a PreconditionFailedException exception.
 12056  	Checksum *string `locationName:"checksum" type:"string"`
 12057  
 12058  	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
 12059  	// you must specify whether your use of Amazon Lex is related to a website,
 12060  	// program, or other application that is directed or targeted, in whole or in
 12061  	// part, to children under age 13 and subject to the Children's Online Privacy
 12062  	// Protection Act (COPPA) by specifying true or false in the childDirected field.
 12063  	// By specifying true in the childDirected field, you confirm that your use
 12064  	// of Amazon Lex is related to a website, program, or other application that
 12065  	// is directed or targeted, in whole or in part, to children under age 13 and
 12066  	// subject to COPPA. By specifying false in the childDirected field, you confirm
 12067  	// that your use of Amazon Lex is not related to a website, program, or other
 12068  	// application that is directed or targeted, in whole or in part, to children
 12069  	// under age 13 and subject to COPPA. You may not specify a default value for
 12070  	// the childDirected field that does not accurately reflect whether your use
 12071  	// of Amazon Lex is related to a website, program, or other application that
 12072  	// is directed or targeted, in whole or in part, to children under age 13 and
 12073  	// subject to COPPA.
 12074  	//
 12075  	// If your use of Amazon Lex relates to a website, program, or other application
 12076  	// that is directed in whole or in part, to children under age 13, you must
 12077  	// obtain any required verifiable parental consent under COPPA. For information
 12078  	// regarding the use of Amazon Lex in connection with websites, programs, or
 12079  	// other applications that are directed or targeted, in whole or in part, to
 12080  	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
 12081  	//
 12082  	// ChildDirected is a required field
 12083  	ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"`
 12084  
 12085  	// When Amazon Lex doesn't understand the user's intent, it uses this message
 12086  	// to get clarification. To specify how many times Amazon Lex should repeat
 12087  	// the clarification prompt, use the maxAttempts field. If Amazon Lex still
 12088  	// doesn't understand, it sends the message in the abortStatement field.
 12089  	//
 12090  	// When you create a clarification prompt, make sure that it suggests the correct
 12091  	// response from the user. for example, for a bot that orders pizza and drinks,
 12092  	// you might create this clarification prompt: "What would you like to do? You
 12093  	// can say 'Order a pizza' or 'Order a drink.'"
 12094  	//
 12095  	// If you have defined a fallback intent, it will be invoked if the clarification
 12096  	// prompt is repeated the number of times defined in the maxAttempts field.
 12097  	// For more information, see AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
 12098  	//
 12099  	// If you don't define a clarification prompt, at runtime Amazon Lex will return
 12100  	// a 400 Bad Request exception in three cases:
 12101  	//
 12102  	//    * Follow-up prompt - When the user responds to a follow-up prompt but
 12103  	//    does not provide an intent. For example, in response to a follow-up prompt
 12104  	//    that says "Would you like anything else today?" the user says "Yes." Amazon
 12105  	//    Lex will return a 400 Bad Request exception because it does not have a
 12106  	//    clarification prompt to send to the user to get an intent.
 12107  	//
 12108  	//    * Lambda function - When using a Lambda function, you return an ElicitIntent
 12109  	//    dialog type. Since Amazon Lex does not have a clarification prompt to
 12110  	//    get an intent from the user, it returns a 400 Bad Request exception.
 12111  	//
 12112  	//    * PutSession operation - When using the PutSession operation, you send
 12113  	//    an ElicitIntent dialog type. Since Amazon Lex does not have a clarification
 12114  	//    prompt to get an intent from the user, it returns a 400 Bad Request exception.
 12115  	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
 12116  
 12117  	// When set to true a new numbered version of the bot is created. This is the
 12118  	// same as calling the CreateBotVersion operation. If you don't specify createVersion,
 12119  	// the default is false.
 12120  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 12121  
 12122  	// A description of the bot.
 12123  	Description *string `locationName:"description" type:"string"`
 12124  
 12125  	// When set to true user utterances are sent to Amazon Comprehend for sentiment
 12126  	// analysis. If you don't specify detectSentiment, the default is false.
 12127  	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
 12128  
 12129  	// Set to true to enable access to natural language understanding improvements.
 12130  	//
 12131  	// When you set the enableModelImprovements parameter to true you can use the
 12132  	// nluIntentConfidenceThreshold parameter to configure confidence scores. For
 12133  	// more information, see Confidence Scores (https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html).
 12134  	//
 12135  	// You can only set the enableModelImprovements parameter in certain Regions.
 12136  	// If you set the parameter to true, your bot has access to accuracy improvements.
 12137  	//
 12138  	// The Regions where you can set the enableModelImprovements parameter to true
 12139  	// are:
 12140  	//
 12141  	//    * US East (N. Virginia) (us-east-1)
 12142  	//
 12143  	//    * US West (Oregon) (us-west-2)
 12144  	//
 12145  	//    * Asia Pacific (Sydney) (ap-southeast-2)
 12146  	//
 12147  	//    * EU (Ireland) (eu-west-1)
 12148  	//
 12149  	// In other Regions, the enableModelImprovements parameter is set to true by
 12150  	// default. In these Regions setting the parameter to false throws a ValidationException
 12151  	// exception.
 12152  	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
 12153  
 12154  	// The maximum time in seconds that Amazon Lex retains the data gathered in
 12155  	// a conversation.
 12156  	//
 12157  	// A user interaction session remains active for the amount of time specified.
 12158  	// If no conversation occurs during this time, the session expires and Amazon
 12159  	// Lex deletes any data provided before the timeout.
 12160  	//
 12161  	// For example, suppose that a user chooses the OrderPizza intent, but gets
 12162  	// sidetracked halfway through placing an order. If the user doesn't complete
 12163  	// the order within the specified time, Amazon Lex discards the slot information
 12164  	// that it gathered, and the user must start over.
 12165  	//
 12166  	// If you don't include the idleSessionTTLInSeconds element in a PutBot operation
 12167  	// request, Amazon Lex uses the default value. This is also true if the request
 12168  	// replaces an existing bot.
 12169  	//
 12170  	// The default is 300 seconds (5 minutes).
 12171  	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
 12172  
 12173  	// An array of Intent objects. Each intent represents a command that a user
 12174  	// can express. For example, a pizza ordering bot might support an OrderPizza
 12175  	// intent. For more information, see how-it-works.
 12176  	Intents []*Intent `locationName:"intents" type:"list"`
 12177  
 12178  	// Specifies the target locale for the bot. Any intent used in the bot must
 12179  	// be compatible with the locale of the bot.
 12180  	//
 12181  	// The default is en-US.
 12182  	//
 12183  	// Locale is a required field
 12184  	Locale *string `locationName:"locale" type:"string" required:"true" enum:"Locale"`
 12185  
 12186  	// The name of the bot. The name is not case sensitive.
 12187  	//
 12188  	// Name is a required field
 12189  	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
 12190  
 12191  	// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent,
 12192  	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
 12193  	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
 12194  	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
 12195  	// response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent are only inserted
 12196  	// if they are configured for the bot.
 12197  	//
 12198  	// You must set the enableModelImprovements parameter to true to use confidence
 12199  	// scores in the following regions.
 12200  	//
 12201  	//    * US East (N. Virginia) (us-east-1)
 12202  	//
 12203  	//    * US West (Oregon) (us-west-2)
 12204  	//
 12205  	//    * Asia Pacific (Sydney) (ap-southeast-2)
 12206  	//
 12207  	//    * EU (Ireland) (eu-west-1)
 12208  	//
 12209  	// In other Regions, the enableModelImprovements parameter is set to true by
 12210  	// default.
 12211  	//
 12212  	// For example, suppose a bot is configured with the confidence threshold of
 12213  	// 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns three alternative
 12214  	// intents with the following confidence scores: IntentA (0.70), IntentB (0.60),
 12215  	// IntentC (0.50). The response from the PostText operation would be:
 12216  	//
 12217  	//    * AMAZON.FallbackIntent
 12218  	//
 12219  	//    * IntentA
 12220  	//
 12221  	//    * IntentB
 12222  	//
 12223  	//    * IntentC
 12224  	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
 12225  
 12226  	// If you set the processBehavior element to BUILD, Amazon Lex builds the bot
 12227  	// so that it can be run. If you set the element to SAVE Amazon Lex saves the
 12228  	// bot, but doesn't build it.
 12229  	//
 12230  	// If you don't specify this value, the default value is BUILD.
 12231  	ProcessBehavior *string `locationName:"processBehavior" type:"string" enum:"ProcessBehavior"`
 12232  
 12233  	// A list of tags to add to the bot. You can only add tags when you create a
 12234  	// bot, you can't use the PutBot operation to update the tags on a bot. To update
 12235  	// tags, use the TagResource operation.
 12236  	Tags []*Tag `locationName:"tags" type:"list"`
 12237  
 12238  	// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions
 12239  	// with the user. The locale configured for the voice must match the locale
 12240  	// of the bot. For more information, see Voices in Amazon Polly (https://docs.aws.amazon.com/polly/latest/dg/voicelist.html)
 12241  	// in the Amazon Polly Developer Guide.
 12242  	VoiceId *string `locationName:"voiceId" type:"string"`
 12243  }
 12244  
 12245  // String returns the string representation.
 12246  //
 12247  // API parameter values that are decorated as "sensitive" in the API will not
 12248  // be included in the string output. The member name will be present, but the
 12249  // value will be replaced with "sensitive".
 12250  func (s PutBotInput) String() string {
 12251  	return awsutil.Prettify(s)
 12252  }
 12253  
 12254  // GoString returns the string representation.
 12255  //
 12256  // API parameter values that are decorated as "sensitive" in the API will not
 12257  // be included in the string output. The member name will be present, but the
 12258  // value will be replaced with "sensitive".
 12259  func (s PutBotInput) GoString() string {
 12260  	return s.String()
 12261  }
 12262  
 12263  // Validate inspects the fields of the type to determine if they are valid.
 12264  func (s *PutBotInput) Validate() error {
 12265  	invalidParams := request.ErrInvalidParams{Context: "PutBotInput"}
 12266  	if s.ChildDirected == nil {
 12267  		invalidParams.Add(request.NewErrParamRequired("ChildDirected"))
 12268  	}
 12269  	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
 12270  		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
 12271  	}
 12272  	if s.Locale == nil {
 12273  		invalidParams.Add(request.NewErrParamRequired("Locale"))
 12274  	}
 12275  	if s.Name == nil {
 12276  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12277  	}
 12278  	if s.Name != nil && len(*s.Name) < 2 {
 12279  		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
 12280  	}
 12281  	if s.AbortStatement != nil {
 12282  		if err := s.AbortStatement.Validate(); err != nil {
 12283  			invalidParams.AddNested("AbortStatement", err.(request.ErrInvalidParams))
 12284  		}
 12285  	}
 12286  	if s.ClarificationPrompt != nil {
 12287  		if err := s.ClarificationPrompt.Validate(); err != nil {
 12288  			invalidParams.AddNested("ClarificationPrompt", err.(request.ErrInvalidParams))
 12289  		}
 12290  	}
 12291  	if s.Intents != nil {
 12292  		for i, v := range s.Intents {
 12293  			if v == nil {
 12294  				continue
 12295  			}
 12296  			if err := v.Validate(); err != nil {
 12297  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Intents", i), err.(request.ErrInvalidParams))
 12298  			}
 12299  		}
 12300  	}
 12301  	if s.Tags != nil {
 12302  		for i, v := range s.Tags {
 12303  			if v == nil {
 12304  				continue
 12305  			}
 12306  			if err := v.Validate(); err != nil {
 12307  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12308  			}
 12309  		}
 12310  	}
 12311  
 12312  	if invalidParams.Len() > 0 {
 12313  		return invalidParams
 12314  	}
 12315  	return nil
 12316  }
 12317  
 12318  // SetAbortStatement sets the AbortStatement field's value.
 12319  func (s *PutBotInput) SetAbortStatement(v *Statement) *PutBotInput {
 12320  	s.AbortStatement = v
 12321  	return s
 12322  }
 12323  
 12324  // SetChecksum sets the Checksum field's value.
 12325  func (s *PutBotInput) SetChecksum(v string) *PutBotInput {
 12326  	s.Checksum = &v
 12327  	return s
 12328  }
 12329  
 12330  // SetChildDirected sets the ChildDirected field's value.
 12331  func (s *PutBotInput) SetChildDirected(v bool) *PutBotInput {
 12332  	s.ChildDirected = &v
 12333  	return s
 12334  }
 12335  
 12336  // SetClarificationPrompt sets the ClarificationPrompt field's value.
 12337  func (s *PutBotInput) SetClarificationPrompt(v *Prompt) *PutBotInput {
 12338  	s.ClarificationPrompt = v
 12339  	return s
 12340  }
 12341  
 12342  // SetCreateVersion sets the CreateVersion field's value.
 12343  func (s *PutBotInput) SetCreateVersion(v bool) *PutBotInput {
 12344  	s.CreateVersion = &v
 12345  	return s
 12346  }
 12347  
 12348  // SetDescription sets the Description field's value.
 12349  func (s *PutBotInput) SetDescription(v string) *PutBotInput {
 12350  	s.Description = &v
 12351  	return s
 12352  }
 12353  
 12354  // SetDetectSentiment sets the DetectSentiment field's value.
 12355  func (s *PutBotInput) SetDetectSentiment(v bool) *PutBotInput {
 12356  	s.DetectSentiment = &v
 12357  	return s
 12358  }
 12359  
 12360  // SetEnableModelImprovements sets the EnableModelImprovements field's value.
 12361  func (s *PutBotInput) SetEnableModelImprovements(v bool) *PutBotInput {
 12362  	s.EnableModelImprovements = &v
 12363  	return s
 12364  }
 12365  
 12366  // SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
 12367  func (s *PutBotInput) SetIdleSessionTTLInSeconds(v int64) *PutBotInput {
 12368  	s.IdleSessionTTLInSeconds = &v
 12369  	return s
 12370  }
 12371  
 12372  // SetIntents sets the Intents field's value.
 12373  func (s *PutBotInput) SetIntents(v []*Intent) *PutBotInput {
 12374  	s.Intents = v
 12375  	return s
 12376  }
 12377  
 12378  // SetLocale sets the Locale field's value.
 12379  func (s *PutBotInput) SetLocale(v string) *PutBotInput {
 12380  	s.Locale = &v
 12381  	return s
 12382  }
 12383  
 12384  // SetName sets the Name field's value.
 12385  func (s *PutBotInput) SetName(v string) *PutBotInput {
 12386  	s.Name = &v
 12387  	return s
 12388  }
 12389  
 12390  // SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
 12391  func (s *PutBotInput) SetNluIntentConfidenceThreshold(v float64) *PutBotInput {
 12392  	s.NluIntentConfidenceThreshold = &v
 12393  	return s
 12394  }
 12395  
 12396  // SetProcessBehavior sets the ProcessBehavior field's value.
 12397  func (s *PutBotInput) SetProcessBehavior(v string) *PutBotInput {
 12398  	s.ProcessBehavior = &v
 12399  	return s
 12400  }
 12401  
 12402  // SetTags sets the Tags field's value.
 12403  func (s *PutBotInput) SetTags(v []*Tag) *PutBotInput {
 12404  	s.Tags = v
 12405  	return s
 12406  }
 12407  
 12408  // SetVoiceId sets the VoiceId field's value.
 12409  func (s *PutBotInput) SetVoiceId(v string) *PutBotInput {
 12410  	s.VoiceId = &v
 12411  	return s
 12412  }
 12413  
 12414  type PutBotOutput struct {
 12415  	_ struct{} `type:"structure"`
 12416  
 12417  	// The message that Amazon Lex uses to cancel a conversation. For more information,
 12418  	// see PutBot.
 12419  	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
 12420  
 12421  	// Checksum of the bot that you created.
 12422  	Checksum *string `locationName:"checksum" type:"string"`
 12423  
 12424  	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
 12425  	// you must specify whether your use of Amazon Lex is related to a website,
 12426  	// program, or other application that is directed or targeted, in whole or in
 12427  	// part, to children under age 13 and subject to the Children's Online Privacy
 12428  	// Protection Act (COPPA) by specifying true or false in the childDirected field.
 12429  	// By specifying true in the childDirected field, you confirm that your use
 12430  	// of Amazon Lex is related to a website, program, or other application that
 12431  	// is directed or targeted, in whole or in part, to children under age 13 and
 12432  	// subject to COPPA. By specifying false in the childDirected field, you confirm
 12433  	// that your use of Amazon Lex is not related to a website, program, or other
 12434  	// application that is directed or targeted, in whole or in part, to children
 12435  	// under age 13 and subject to COPPA. You may not specify a default value for
 12436  	// the childDirected field that does not accurately reflect whether your use
 12437  	// of Amazon Lex is related to a website, program, or other application that
 12438  	// is directed or targeted, in whole or in part, to children under age 13 and
 12439  	// subject to COPPA.
 12440  	//
 12441  	// If your use of Amazon Lex relates to a website, program, or other application
 12442  	// that is directed in whole or in part, to children under age 13, you must
 12443  	// obtain any required verifiable parental consent under COPPA. For information
 12444  	// regarding the use of Amazon Lex in connection with websites, programs, or
 12445  	// other applications that are directed or targeted, in whole or in part, to
 12446  	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
 12447  	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
 12448  
 12449  	// The prompts that Amazon Lex uses when it doesn't understand the user's intent.
 12450  	// For more information, see PutBot.
 12451  	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
 12452  
 12453  	// True if a new version of the bot was created. If the createVersion field
 12454  	// was not specified in the request, the createVersion field is set to false
 12455  	// in the response.
 12456  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 12457  
 12458  	// The date that the bot was created.
 12459  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 12460  
 12461  	// A description of the bot.
 12462  	Description *string `locationName:"description" type:"string"`
 12463  
 12464  	// true if the bot is configured to send user utterances to Amazon Comprehend
 12465  	// for sentiment analysis. If the detectSentiment field was not specified in
 12466  	// the request, the detectSentiment field is false in the response.
 12467  	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
 12468  
 12469  	// Indicates whether the bot uses accuracy improvements. true indicates that
 12470  	// the bot is using the improvements, otherwise, false.
 12471  	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
 12472  
 12473  	// If status is FAILED, Amazon Lex provides the reason that it failed to build
 12474  	// the bot.
 12475  	FailureReason *string `locationName:"failureReason" type:"string"`
 12476  
 12477  	// The maximum length of time that Amazon Lex retains the data gathered in a
 12478  	// conversation. For more information, see PutBot.
 12479  	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
 12480  
 12481  	// An array of Intent objects. For more information, see PutBot.
 12482  	Intents []*Intent `locationName:"intents" type:"list"`
 12483  
 12484  	// The date that the bot was updated. When you create a resource, the creation
 12485  	// date and last updated date are the same.
 12486  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 12487  
 12488  	// The target locale for the bot.
 12489  	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
 12490  
 12491  	// The name of the bot.
 12492  	Name *string `locationName:"name" min:"2" type:"string"`
 12493  
 12494  	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
 12495  	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
 12496  	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
 12497  	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
 12498  	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
 12499  	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
 12500  	// it is configured for the bot.
 12501  	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
 12502  
 12503  	// When you send a request to create a bot with processBehavior set to BUILD,
 12504  	// Amazon Lex sets the status response element to BUILDING.
 12505  	//
 12506  	// In the READY_BASIC_TESTING state you can test the bot with user inputs that
 12507  	// exactly match the utterances configured for the bot's intents and values
 12508  	// in the slot types.
 12509  	//
 12510  	// If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon
 12511  	// Lex returns the reason for the failure in the failureReason response element.
 12512  	//
 12513  	// When you set processBehavior to SAVE, Amazon Lex sets the status code to
 12514  	// NOT BUILT.
 12515  	//
 12516  	// When the bot is in the READY state you can test and publish the bot.
 12517  	Status *string `locationName:"status" type:"string" enum:"Status"`
 12518  
 12519  	// A list of tags associated with the bot.
 12520  	Tags []*Tag `locationName:"tags" type:"list"`
 12521  
 12522  	// The version of the bot. For a new bot, the version is always $LATEST.
 12523  	Version *string `locationName:"version" min:"1" type:"string"`
 12524  
 12525  	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
 12526  	// the user. For more information, see PutBot.
 12527  	VoiceId *string `locationName:"voiceId" type:"string"`
 12528  }
 12529  
 12530  // String returns the string representation.
 12531  //
 12532  // API parameter values that are decorated as "sensitive" in the API will not
 12533  // be included in the string output. The member name will be present, but the
 12534  // value will be replaced with "sensitive".
 12535  func (s PutBotOutput) String() string {
 12536  	return awsutil.Prettify(s)
 12537  }
 12538  
 12539  // GoString returns the string representation.
 12540  //
 12541  // API parameter values that are decorated as "sensitive" in the API will not
 12542  // be included in the string output. The member name will be present, but the
 12543  // value will be replaced with "sensitive".
 12544  func (s PutBotOutput) GoString() string {
 12545  	return s.String()
 12546  }
 12547  
 12548  // SetAbortStatement sets the AbortStatement field's value.
 12549  func (s *PutBotOutput) SetAbortStatement(v *Statement) *PutBotOutput {
 12550  	s.AbortStatement = v
 12551  	return s
 12552  }
 12553  
 12554  // SetChecksum sets the Checksum field's value.
 12555  func (s *PutBotOutput) SetChecksum(v string) *PutBotOutput {
 12556  	s.Checksum = &v
 12557  	return s
 12558  }
 12559  
 12560  // SetChildDirected sets the ChildDirected field's value.
 12561  func (s *PutBotOutput) SetChildDirected(v bool) *PutBotOutput {
 12562  	s.ChildDirected = &v
 12563  	return s
 12564  }
 12565  
 12566  // SetClarificationPrompt sets the ClarificationPrompt field's value.
 12567  func (s *PutBotOutput) SetClarificationPrompt(v *Prompt) *PutBotOutput {
 12568  	s.ClarificationPrompt = v
 12569  	return s
 12570  }
 12571  
 12572  // SetCreateVersion sets the CreateVersion field's value.
 12573  func (s *PutBotOutput) SetCreateVersion(v bool) *PutBotOutput {
 12574  	s.CreateVersion = &v
 12575  	return s
 12576  }
 12577  
 12578  // SetCreatedDate sets the CreatedDate field's value.
 12579  func (s *PutBotOutput) SetCreatedDate(v time.Time) *PutBotOutput {
 12580  	s.CreatedDate = &v
 12581  	return s
 12582  }
 12583  
 12584  // SetDescription sets the Description field's value.
 12585  func (s *PutBotOutput) SetDescription(v string) *PutBotOutput {
 12586  	s.Description = &v
 12587  	return s
 12588  }
 12589  
 12590  // SetDetectSentiment sets the DetectSentiment field's value.
 12591  func (s *PutBotOutput) SetDetectSentiment(v bool) *PutBotOutput {
 12592  	s.DetectSentiment = &v
 12593  	return s
 12594  }
 12595  
 12596  // SetEnableModelImprovements sets the EnableModelImprovements field's value.
 12597  func (s *PutBotOutput) SetEnableModelImprovements(v bool) *PutBotOutput {
 12598  	s.EnableModelImprovements = &v
 12599  	return s
 12600  }
 12601  
 12602  // SetFailureReason sets the FailureReason field's value.
 12603  func (s *PutBotOutput) SetFailureReason(v string) *PutBotOutput {
 12604  	s.FailureReason = &v
 12605  	return s
 12606  }
 12607  
 12608  // SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
 12609  func (s *PutBotOutput) SetIdleSessionTTLInSeconds(v int64) *PutBotOutput {
 12610  	s.IdleSessionTTLInSeconds = &v
 12611  	return s
 12612  }
 12613  
 12614  // SetIntents sets the Intents field's value.
 12615  func (s *PutBotOutput) SetIntents(v []*Intent) *PutBotOutput {
 12616  	s.Intents = v
 12617  	return s
 12618  }
 12619  
 12620  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 12621  func (s *PutBotOutput) SetLastUpdatedDate(v time.Time) *PutBotOutput {
 12622  	s.LastUpdatedDate = &v
 12623  	return s
 12624  }
 12625  
 12626  // SetLocale sets the Locale field's value.
 12627  func (s *PutBotOutput) SetLocale(v string) *PutBotOutput {
 12628  	s.Locale = &v
 12629  	return s
 12630  }
 12631  
 12632  // SetName sets the Name field's value.
 12633  func (s *PutBotOutput) SetName(v string) *PutBotOutput {
 12634  	s.Name = &v
 12635  	return s
 12636  }
 12637  
 12638  // SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
 12639  func (s *PutBotOutput) SetNluIntentConfidenceThreshold(v float64) *PutBotOutput {
 12640  	s.NluIntentConfidenceThreshold = &v
 12641  	return s
 12642  }
 12643  
 12644  // SetStatus sets the Status field's value.
 12645  func (s *PutBotOutput) SetStatus(v string) *PutBotOutput {
 12646  	s.Status = &v
 12647  	return s
 12648  }
 12649  
 12650  // SetTags sets the Tags field's value.
 12651  func (s *PutBotOutput) SetTags(v []*Tag) *PutBotOutput {
 12652  	s.Tags = v
 12653  	return s
 12654  }
 12655  
 12656  // SetVersion sets the Version field's value.
 12657  func (s *PutBotOutput) SetVersion(v string) *PutBotOutput {
 12658  	s.Version = &v
 12659  	return s
 12660  }
 12661  
 12662  // SetVoiceId sets the VoiceId field's value.
 12663  func (s *PutBotOutput) SetVoiceId(v string) *PutBotOutput {
 12664  	s.VoiceId = &v
 12665  	return s
 12666  }
 12667  
 12668  type PutIntentInput struct {
 12669  	_ struct{} `type:"structure"`
 12670  
 12671  	// Identifies a specific revision of the $LATEST version.
 12672  	//
 12673  	// When you create a new intent, leave the checksum field blank. If you specify
 12674  	// a checksum you get a BadRequestException exception.
 12675  	//
 12676  	// When you want to update a intent, set the checksum field to the checksum
 12677  	// of the most recent revision of the $LATEST version. If you don't specify
 12678  	// the checksum field, or if the checksum does not match the $LATEST version,
 12679  	// you get a PreconditionFailedException exception.
 12680  	Checksum *string `locationName:"checksum" type:"string"`
 12681  
 12682  	// The statement that you want Amazon Lex to convey to the user after the intent
 12683  	// is successfully fulfilled by the Lambda function.
 12684  	//
 12685  	// This element is relevant only if you provide a Lambda function in the fulfillmentActivity.
 12686  	// If you return the intent to the client application, you can't specify this
 12687  	// element.
 12688  	//
 12689  	// The followUpPrompt and conclusionStatement are mutually exclusive. You can
 12690  	// specify only one.
 12691  	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
 12692  
 12693  	// Prompts the user to confirm the intent. This question should have a yes or
 12694  	// no answer.
 12695  	//
 12696  	// Amazon Lex uses this prompt to ensure that the user acknowledges that the
 12697  	// intent is ready for fulfillment. For example, with the OrderPizza intent,
 12698  	// you might want to confirm that the order is correct before placing it. For
 12699  	// other intents, such as intents that simply respond to user questions, you
 12700  	// might not need to ask the user for confirmation before providing the information.
 12701  	//
 12702  	// You you must provide both the rejectionStatement and the confirmationPrompt,
 12703  	// or neither.
 12704  	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
 12705  
 12706  	// When set to true a new numbered version of the intent is created. This is
 12707  	// the same as calling the CreateIntentVersion operation. If you do not specify
 12708  	// createVersion, the default is false.
 12709  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 12710  
 12711  	// A description of the intent.
 12712  	Description *string `locationName:"description" type:"string"`
 12713  
 12714  	// Specifies a Lambda function to invoke for each user input. You can invoke
 12715  	// this Lambda function to personalize user interaction.
 12716  	//
 12717  	// For example, suppose your bot determines that the user is John. Your Lambda
 12718  	// function might retrieve John's information from a backend database and prepopulate
 12719  	// some of the values. For example, if you find that John is gluten intolerant,
 12720  	// you might set the corresponding intent slot, GlutenIntolerant, to true. You
 12721  	// might find John's phone number and set the corresponding session attribute.
 12722  	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
 12723  
 12724  	// Amazon Lex uses this prompt to solicit additional activity after fulfilling
 12725  	// an intent. For example, after the OrderPizza intent is fulfilled, you might
 12726  	// prompt the user to order a drink.
 12727  	//
 12728  	// The action that Amazon Lex takes depends on the user's response, as follows:
 12729  	//
 12730  	//    * If the user says "Yes" it responds with the clarification prompt that
 12731  	//    is configured for the bot.
 12732  	//
 12733  	//    * if the user says "Yes" and continues with an utterance that triggers
 12734  	//    an intent it starts a conversation for the intent.
 12735  	//
 12736  	//    * If the user says "No" it responds with the rejection statement configured
 12737  	//    for the the follow-up prompt.
 12738  	//
 12739  	//    * If it doesn't recognize the utterance it repeats the follow-up prompt
 12740  	//    again.
 12741  	//
 12742  	// The followUpPrompt field and the conclusionStatement field are mutually exclusive.
 12743  	// You can specify only one.
 12744  	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
 12745  
 12746  	// Required. Describes how the intent is fulfilled. For example, after a user
 12747  	// provides all of the information for a pizza order, fulfillmentActivity defines
 12748  	// how the bot places an order with a local pizza store.
 12749  	//
 12750  	// You might configure Amazon Lex to return all of the intent information to
 12751  	// the client application, or direct it to invoke a Lambda function that can
 12752  	// process the intent (for example, place an order with a pizzeria).
 12753  	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
 12754  
 12755  	// An array of InputContext objects that lists the contexts that must be active
 12756  	// for Amazon Lex to choose the intent in a conversation with the user.
 12757  	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
 12758  
 12759  	// Configuration information required to use the AMAZON.KendraSearchIntent intent
 12760  	// to connect to an Amazon Kendra index. For more information, see AMAZON.KendraSearchIntent
 12761  	// (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
 12762  	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
 12763  
 12764  	// The name of the intent. The name is not case sensitive.
 12765  	//
 12766  	// The name can't match a built-in intent name, or a built-in intent name with
 12767  	// "AMAZON." removed. For example, because there is a built-in intent called
 12768  	// AMAZON.HelpIntent, you can't create a custom intent called HelpIntent.
 12769  	//
 12770  	// For a list of built-in intents, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
 12771  	// in the Alexa Skills Kit.
 12772  	//
 12773  	// Name is a required field
 12774  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 12775  
 12776  	// An array of OutputContext objects that lists the contexts that the intent
 12777  	// activates when the intent is fulfilled.
 12778  	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
 12779  
 12780  	// A unique identifier for the built-in intent to base this intent on. To find
 12781  	// the signature for an intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
 12782  	// in the Alexa Skills Kit.
 12783  	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
 12784  
 12785  	// When the user answers "no" to the question defined in confirmationPrompt,
 12786  	// Amazon Lex responds with this statement to acknowledge that the intent was
 12787  	// canceled.
 12788  	//
 12789  	// You must provide both the rejectionStatement and the confirmationPrompt,
 12790  	// or neither.
 12791  	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
 12792  
 12793  	// An array of utterances (strings) that a user might say to signal the intent.
 12794  	// For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas".
 12795  	//
 12796  	// In each utterance, a slot name is enclosed in curly braces.
 12797  	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
 12798  
 12799  	// An array of intent slots. At runtime, Amazon Lex elicits required slot values
 12800  	// from the user using prompts defined in the slots. For more information, see
 12801  	// how-it-works.
 12802  	Slots []*Slot `locationName:"slots" type:"list"`
 12803  }
 12804  
 12805  // String returns the string representation.
 12806  //
 12807  // API parameter values that are decorated as "sensitive" in the API will not
 12808  // be included in the string output. The member name will be present, but the
 12809  // value will be replaced with "sensitive".
 12810  func (s PutIntentInput) String() string {
 12811  	return awsutil.Prettify(s)
 12812  }
 12813  
 12814  // GoString returns the string representation.
 12815  //
 12816  // API parameter values that are decorated as "sensitive" in the API will not
 12817  // be included in the string output. The member name will be present, but the
 12818  // value will be replaced with "sensitive".
 12819  func (s PutIntentInput) GoString() string {
 12820  	return s.String()
 12821  }
 12822  
 12823  // Validate inspects the fields of the type to determine if they are valid.
 12824  func (s *PutIntentInput) Validate() error {
 12825  	invalidParams := request.ErrInvalidParams{Context: "PutIntentInput"}
 12826  	if s.Name == nil {
 12827  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12828  	}
 12829  	if s.Name != nil && len(*s.Name) < 1 {
 12830  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 12831  	}
 12832  	if s.ConclusionStatement != nil {
 12833  		if err := s.ConclusionStatement.Validate(); err != nil {
 12834  			invalidParams.AddNested("ConclusionStatement", err.(request.ErrInvalidParams))
 12835  		}
 12836  	}
 12837  	if s.ConfirmationPrompt != nil {
 12838  		if err := s.ConfirmationPrompt.Validate(); err != nil {
 12839  			invalidParams.AddNested("ConfirmationPrompt", err.(request.ErrInvalidParams))
 12840  		}
 12841  	}
 12842  	if s.DialogCodeHook != nil {
 12843  		if err := s.DialogCodeHook.Validate(); err != nil {
 12844  			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
 12845  		}
 12846  	}
 12847  	if s.FollowUpPrompt != nil {
 12848  		if err := s.FollowUpPrompt.Validate(); err != nil {
 12849  			invalidParams.AddNested("FollowUpPrompt", err.(request.ErrInvalidParams))
 12850  		}
 12851  	}
 12852  	if s.FulfillmentActivity != nil {
 12853  		if err := s.FulfillmentActivity.Validate(); err != nil {
 12854  			invalidParams.AddNested("FulfillmentActivity", err.(request.ErrInvalidParams))
 12855  		}
 12856  	}
 12857  	if s.InputContexts != nil {
 12858  		for i, v := range s.InputContexts {
 12859  			if v == nil {
 12860  				continue
 12861  			}
 12862  			if err := v.Validate(); err != nil {
 12863  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputContexts", i), err.(request.ErrInvalidParams))
 12864  			}
 12865  		}
 12866  	}
 12867  	if s.KendraConfiguration != nil {
 12868  		if err := s.KendraConfiguration.Validate(); err != nil {
 12869  			invalidParams.AddNested("KendraConfiguration", err.(request.ErrInvalidParams))
 12870  		}
 12871  	}
 12872  	if s.OutputContexts != nil {
 12873  		for i, v := range s.OutputContexts {
 12874  			if v == nil {
 12875  				continue
 12876  			}
 12877  			if err := v.Validate(); err != nil {
 12878  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputContexts", i), err.(request.ErrInvalidParams))
 12879  			}
 12880  		}
 12881  	}
 12882  	if s.RejectionStatement != nil {
 12883  		if err := s.RejectionStatement.Validate(); err != nil {
 12884  			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
 12885  		}
 12886  	}
 12887  	if s.Slots != nil {
 12888  		for i, v := range s.Slots {
 12889  			if v == nil {
 12890  				continue
 12891  			}
 12892  			if err := v.Validate(); err != nil {
 12893  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Slots", i), err.(request.ErrInvalidParams))
 12894  			}
 12895  		}
 12896  	}
 12897  
 12898  	if invalidParams.Len() > 0 {
 12899  		return invalidParams
 12900  	}
 12901  	return nil
 12902  }
 12903  
 12904  // SetChecksum sets the Checksum field's value.
 12905  func (s *PutIntentInput) SetChecksum(v string) *PutIntentInput {
 12906  	s.Checksum = &v
 12907  	return s
 12908  }
 12909  
 12910  // SetConclusionStatement sets the ConclusionStatement field's value.
 12911  func (s *PutIntentInput) SetConclusionStatement(v *Statement) *PutIntentInput {
 12912  	s.ConclusionStatement = v
 12913  	return s
 12914  }
 12915  
 12916  // SetConfirmationPrompt sets the ConfirmationPrompt field's value.
 12917  func (s *PutIntentInput) SetConfirmationPrompt(v *Prompt) *PutIntentInput {
 12918  	s.ConfirmationPrompt = v
 12919  	return s
 12920  }
 12921  
 12922  // SetCreateVersion sets the CreateVersion field's value.
 12923  func (s *PutIntentInput) SetCreateVersion(v bool) *PutIntentInput {
 12924  	s.CreateVersion = &v
 12925  	return s
 12926  }
 12927  
 12928  // SetDescription sets the Description field's value.
 12929  func (s *PutIntentInput) SetDescription(v string) *PutIntentInput {
 12930  	s.Description = &v
 12931  	return s
 12932  }
 12933  
 12934  // SetDialogCodeHook sets the DialogCodeHook field's value.
 12935  func (s *PutIntentInput) SetDialogCodeHook(v *CodeHook) *PutIntentInput {
 12936  	s.DialogCodeHook = v
 12937  	return s
 12938  }
 12939  
 12940  // SetFollowUpPrompt sets the FollowUpPrompt field's value.
 12941  func (s *PutIntentInput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentInput {
 12942  	s.FollowUpPrompt = v
 12943  	return s
 12944  }
 12945  
 12946  // SetFulfillmentActivity sets the FulfillmentActivity field's value.
 12947  func (s *PutIntentInput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentInput {
 12948  	s.FulfillmentActivity = v
 12949  	return s
 12950  }
 12951  
 12952  // SetInputContexts sets the InputContexts field's value.
 12953  func (s *PutIntentInput) SetInputContexts(v []*InputContext) *PutIntentInput {
 12954  	s.InputContexts = v
 12955  	return s
 12956  }
 12957  
 12958  // SetKendraConfiguration sets the KendraConfiguration field's value.
 12959  func (s *PutIntentInput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentInput {
 12960  	s.KendraConfiguration = v
 12961  	return s
 12962  }
 12963  
 12964  // SetName sets the Name field's value.
 12965  func (s *PutIntentInput) SetName(v string) *PutIntentInput {
 12966  	s.Name = &v
 12967  	return s
 12968  }
 12969  
 12970  // SetOutputContexts sets the OutputContexts field's value.
 12971  func (s *PutIntentInput) SetOutputContexts(v []*OutputContext) *PutIntentInput {
 12972  	s.OutputContexts = v
 12973  	return s
 12974  }
 12975  
 12976  // SetParentIntentSignature sets the ParentIntentSignature field's value.
 12977  func (s *PutIntentInput) SetParentIntentSignature(v string) *PutIntentInput {
 12978  	s.ParentIntentSignature = &v
 12979  	return s
 12980  }
 12981  
 12982  // SetRejectionStatement sets the RejectionStatement field's value.
 12983  func (s *PutIntentInput) SetRejectionStatement(v *Statement) *PutIntentInput {
 12984  	s.RejectionStatement = v
 12985  	return s
 12986  }
 12987  
 12988  // SetSampleUtterances sets the SampleUtterances field's value.
 12989  func (s *PutIntentInput) SetSampleUtterances(v []*string) *PutIntentInput {
 12990  	s.SampleUtterances = v
 12991  	return s
 12992  }
 12993  
 12994  // SetSlots sets the Slots field's value.
 12995  func (s *PutIntentInput) SetSlots(v []*Slot) *PutIntentInput {
 12996  	s.Slots = v
 12997  	return s
 12998  }
 12999  
 13000  type PutIntentOutput struct {
 13001  	_ struct{} `type:"structure"`
 13002  
 13003  	// Checksum of the $LATESTversion of the intent created or updated.
 13004  	Checksum *string `locationName:"checksum" type:"string"`
 13005  
 13006  	// After the Lambda function specified in thefulfillmentActivityintent fulfills
 13007  	// the intent, Amazon Lex conveys this statement to the user.
 13008  	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
 13009  
 13010  	// If defined in the intent, Amazon Lex prompts the user to confirm the intent
 13011  	// before fulfilling it.
 13012  	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
 13013  
 13014  	// True if a new version of the intent was created. If the createVersion field
 13015  	// was not specified in the request, the createVersion field is set to false
 13016  	// in the response.
 13017  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 13018  
 13019  	// The date that the intent was created.
 13020  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 13021  
 13022  	// A description of the intent.
 13023  	Description *string `locationName:"description" type:"string"`
 13024  
 13025  	// If defined in the intent, Amazon Lex invokes this Lambda function for each
 13026  	// user input.
 13027  	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
 13028  
 13029  	// If defined in the intent, Amazon Lex uses this prompt to solicit additional
 13030  	// user activity after the intent is fulfilled.
 13031  	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
 13032  
 13033  	// If defined in the intent, Amazon Lex invokes this Lambda function to fulfill
 13034  	// the intent after the user provides all of the information required by the
 13035  	// intent.
 13036  	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
 13037  
 13038  	// An array of InputContext objects that lists the contexts that must be active
 13039  	// for Amazon Lex to choose the intent in a conversation with the user.
 13040  	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
 13041  
 13042  	// Configuration information, if any, required to connect to an Amazon Kendra
 13043  	// index and use the AMAZON.KendraSearchIntent intent.
 13044  	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
 13045  
 13046  	// The date that the intent was updated. When you create a resource, the creation
 13047  	// date and last update dates are the same.
 13048  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 13049  
 13050  	// The name of the intent.
 13051  	Name *string `locationName:"name" min:"1" type:"string"`
 13052  
 13053  	// An array of OutputContext objects that lists the contexts that the intent
 13054  	// activates when the intent is fulfilled.
 13055  	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
 13056  
 13057  	// A unique identifier for the built-in intent that this intent is based on.
 13058  	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
 13059  
 13060  	// If the user answers "no" to the question defined in confirmationPrompt Amazon
 13061  	// Lex responds with this statement to acknowledge that the intent was canceled.
 13062  	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
 13063  
 13064  	// An array of sample utterances that are configured for the intent.
 13065  	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
 13066  
 13067  	// An array of intent slots that are configured for the intent.
 13068  	Slots []*Slot `locationName:"slots" type:"list"`
 13069  
 13070  	// The version of the intent. For a new intent, the version is always $LATEST.
 13071  	Version *string `locationName:"version" min:"1" type:"string"`
 13072  }
 13073  
 13074  // String returns the string representation.
 13075  //
 13076  // API parameter values that are decorated as "sensitive" in the API will not
 13077  // be included in the string output. The member name will be present, but the
 13078  // value will be replaced with "sensitive".
 13079  func (s PutIntentOutput) String() string {
 13080  	return awsutil.Prettify(s)
 13081  }
 13082  
 13083  // GoString returns the string representation.
 13084  //
 13085  // API parameter values that are decorated as "sensitive" in the API will not
 13086  // be included in the string output. The member name will be present, but the
 13087  // value will be replaced with "sensitive".
 13088  func (s PutIntentOutput) GoString() string {
 13089  	return s.String()
 13090  }
 13091  
 13092  // SetChecksum sets the Checksum field's value.
 13093  func (s *PutIntentOutput) SetChecksum(v string) *PutIntentOutput {
 13094  	s.Checksum = &v
 13095  	return s
 13096  }
 13097  
 13098  // SetConclusionStatement sets the ConclusionStatement field's value.
 13099  func (s *PutIntentOutput) SetConclusionStatement(v *Statement) *PutIntentOutput {
 13100  	s.ConclusionStatement = v
 13101  	return s
 13102  }
 13103  
 13104  // SetConfirmationPrompt sets the ConfirmationPrompt field's value.
 13105  func (s *PutIntentOutput) SetConfirmationPrompt(v *Prompt) *PutIntentOutput {
 13106  	s.ConfirmationPrompt = v
 13107  	return s
 13108  }
 13109  
 13110  // SetCreateVersion sets the CreateVersion field's value.
 13111  func (s *PutIntentOutput) SetCreateVersion(v bool) *PutIntentOutput {
 13112  	s.CreateVersion = &v
 13113  	return s
 13114  }
 13115  
 13116  // SetCreatedDate sets the CreatedDate field's value.
 13117  func (s *PutIntentOutput) SetCreatedDate(v time.Time) *PutIntentOutput {
 13118  	s.CreatedDate = &v
 13119  	return s
 13120  }
 13121  
 13122  // SetDescription sets the Description field's value.
 13123  func (s *PutIntentOutput) SetDescription(v string) *PutIntentOutput {
 13124  	s.Description = &v
 13125  	return s
 13126  }
 13127  
 13128  // SetDialogCodeHook sets the DialogCodeHook field's value.
 13129  func (s *PutIntentOutput) SetDialogCodeHook(v *CodeHook) *PutIntentOutput {
 13130  	s.DialogCodeHook = v
 13131  	return s
 13132  }
 13133  
 13134  // SetFollowUpPrompt sets the FollowUpPrompt field's value.
 13135  func (s *PutIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentOutput {
 13136  	s.FollowUpPrompt = v
 13137  	return s
 13138  }
 13139  
 13140  // SetFulfillmentActivity sets the FulfillmentActivity field's value.
 13141  func (s *PutIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentOutput {
 13142  	s.FulfillmentActivity = v
 13143  	return s
 13144  }
 13145  
 13146  // SetInputContexts sets the InputContexts field's value.
 13147  func (s *PutIntentOutput) SetInputContexts(v []*InputContext) *PutIntentOutput {
 13148  	s.InputContexts = v
 13149  	return s
 13150  }
 13151  
 13152  // SetKendraConfiguration sets the KendraConfiguration field's value.
 13153  func (s *PutIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentOutput {
 13154  	s.KendraConfiguration = v
 13155  	return s
 13156  }
 13157  
 13158  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 13159  func (s *PutIntentOutput) SetLastUpdatedDate(v time.Time) *PutIntentOutput {
 13160  	s.LastUpdatedDate = &v
 13161  	return s
 13162  }
 13163  
 13164  // SetName sets the Name field's value.
 13165  func (s *PutIntentOutput) SetName(v string) *PutIntentOutput {
 13166  	s.Name = &v
 13167  	return s
 13168  }
 13169  
 13170  // SetOutputContexts sets the OutputContexts field's value.
 13171  func (s *PutIntentOutput) SetOutputContexts(v []*OutputContext) *PutIntentOutput {
 13172  	s.OutputContexts = v
 13173  	return s
 13174  }
 13175  
 13176  // SetParentIntentSignature sets the ParentIntentSignature field's value.
 13177  func (s *PutIntentOutput) SetParentIntentSignature(v string) *PutIntentOutput {
 13178  	s.ParentIntentSignature = &v
 13179  	return s
 13180  }
 13181  
 13182  // SetRejectionStatement sets the RejectionStatement field's value.
 13183  func (s *PutIntentOutput) SetRejectionStatement(v *Statement) *PutIntentOutput {
 13184  	s.RejectionStatement = v
 13185  	return s
 13186  }
 13187  
 13188  // SetSampleUtterances sets the SampleUtterances field's value.
 13189  func (s *PutIntentOutput) SetSampleUtterances(v []*string) *PutIntentOutput {
 13190  	s.SampleUtterances = v
 13191  	return s
 13192  }
 13193  
 13194  // SetSlots sets the Slots field's value.
 13195  func (s *PutIntentOutput) SetSlots(v []*Slot) *PutIntentOutput {
 13196  	s.Slots = v
 13197  	return s
 13198  }
 13199  
 13200  // SetVersion sets the Version field's value.
 13201  func (s *PutIntentOutput) SetVersion(v string) *PutIntentOutput {
 13202  	s.Version = &v
 13203  	return s
 13204  }
 13205  
 13206  type PutSlotTypeInput struct {
 13207  	_ struct{} `type:"structure"`
 13208  
 13209  	// Identifies a specific revision of the $LATEST version.
 13210  	//
 13211  	// When you create a new slot type, leave the checksum field blank. If you specify
 13212  	// a checksum you get a BadRequestException exception.
 13213  	//
 13214  	// When you want to update a slot type, set the checksum field to the checksum
 13215  	// of the most recent revision of the $LATEST version. If you don't specify
 13216  	// the checksum field, or if the checksum does not match the $LATEST version,
 13217  	// you get a PreconditionFailedException exception.
 13218  	Checksum *string `locationName:"checksum" type:"string"`
 13219  
 13220  	// When set to true a new numbered version of the slot type is created. This
 13221  	// is the same as calling the CreateSlotTypeVersion operation. If you do not
 13222  	// specify createVersion, the default is false.
 13223  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 13224  
 13225  	// A description of the slot type.
 13226  	Description *string `locationName:"description" type:"string"`
 13227  
 13228  	// A list of EnumerationValue objects that defines the values that the slot
 13229  	// type can take. Each value can have a list of synonyms, which are additional
 13230  	// values that help train the machine learning model about the values that it
 13231  	// resolves for a slot.
 13232  	//
 13233  	// A regular expression slot type doesn't require enumeration values. All other
 13234  	// slot types require a list of enumeration values.
 13235  	//
 13236  	// When Amazon Lex resolves a slot value, it generates a resolution list that
 13237  	// contains up to five possible values for the slot. If you are using a Lambda
 13238  	// function, this resolution list is passed to the function. If you are not
 13239  	// using a Lambda function you can choose to return the value that the user
 13240  	// entered or the first value in the resolution list as the slot value. The
 13241  	// valueSelectionStrategy field indicates the option to use.
 13242  	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
 13243  
 13244  	// The name of the slot type. The name is not case sensitive.
 13245  	//
 13246  	// The name can't match a built-in slot type name, or a built-in slot type name
 13247  	// with "AMAZON." removed. For example, because there is a built-in slot type
 13248  	// called AMAZON.DATE, you can't create a custom slot type called DATE.
 13249  	//
 13250  	// For a list of built-in slot types, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
 13251  	// in the Alexa Skills Kit.
 13252  	//
 13253  	// Name is a required field
 13254  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 13255  
 13256  	// The built-in slot type used as the parent of the slot type. When you define
 13257  	// a parent slot type, the new slot type has all of the same configuration as
 13258  	// the parent.
 13259  	//
 13260  	// Only AMAZON.AlphaNumeric is supported.
 13261  	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
 13262  
 13263  	// Configuration information that extends the parent built-in slot type. The
 13264  	// configuration is added to the settings for the parent slot type.
 13265  	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
 13266  
 13267  	// Determines the slot resolution strategy that Amazon Lex uses to return slot
 13268  	// type values. The field can be set to one of the following values:
 13269  	//
 13270  	//    * ORIGINAL_VALUE - Returns the value entered by the user, if the user
 13271  	//    value is similar to the slot value.
 13272  	//
 13273  	//    * TOP_RESOLUTION - If there is a resolution list for the slot, return
 13274  	//    the first value in the resolution list as the slot type value. If there
 13275  	//    is no resolution list, null is returned.
 13276  	//
 13277  	// If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE.
 13278  	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
 13279  }
 13280  
 13281  // String returns the string representation.
 13282  //
 13283  // API parameter values that are decorated as "sensitive" in the API will not
 13284  // be included in the string output. The member name will be present, but the
 13285  // value will be replaced with "sensitive".
 13286  func (s PutSlotTypeInput) String() string {
 13287  	return awsutil.Prettify(s)
 13288  }
 13289  
 13290  // GoString returns the string representation.
 13291  //
 13292  // API parameter values that are decorated as "sensitive" in the API will not
 13293  // be included in the string output. The member name will be present, but the
 13294  // value will be replaced with "sensitive".
 13295  func (s PutSlotTypeInput) GoString() string {
 13296  	return s.String()
 13297  }
 13298  
 13299  // Validate inspects the fields of the type to determine if they are valid.
 13300  func (s *PutSlotTypeInput) Validate() error {
 13301  	invalidParams := request.ErrInvalidParams{Context: "PutSlotTypeInput"}
 13302  	if s.Name == nil {
 13303  		invalidParams.Add(request.NewErrParamRequired("Name"))
 13304  	}
 13305  	if s.Name != nil && len(*s.Name) < 1 {
 13306  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 13307  	}
 13308  	if s.ParentSlotTypeSignature != nil && len(*s.ParentSlotTypeSignature) < 1 {
 13309  		invalidParams.Add(request.NewErrParamMinLen("ParentSlotTypeSignature", 1))
 13310  	}
 13311  	if s.EnumerationValues != nil {
 13312  		for i, v := range s.EnumerationValues {
 13313  			if v == nil {
 13314  				continue
 13315  			}
 13316  			if err := v.Validate(); err != nil {
 13317  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnumerationValues", i), err.(request.ErrInvalidParams))
 13318  			}
 13319  		}
 13320  	}
 13321  	if s.SlotTypeConfigurations != nil {
 13322  		for i, v := range s.SlotTypeConfigurations {
 13323  			if v == nil {
 13324  				continue
 13325  			}
 13326  			if err := v.Validate(); err != nil {
 13327  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotTypeConfigurations", i), err.(request.ErrInvalidParams))
 13328  			}
 13329  		}
 13330  	}
 13331  
 13332  	if invalidParams.Len() > 0 {
 13333  		return invalidParams
 13334  	}
 13335  	return nil
 13336  }
 13337  
 13338  // SetChecksum sets the Checksum field's value.
 13339  func (s *PutSlotTypeInput) SetChecksum(v string) *PutSlotTypeInput {
 13340  	s.Checksum = &v
 13341  	return s
 13342  }
 13343  
 13344  // SetCreateVersion sets the CreateVersion field's value.
 13345  func (s *PutSlotTypeInput) SetCreateVersion(v bool) *PutSlotTypeInput {
 13346  	s.CreateVersion = &v
 13347  	return s
 13348  }
 13349  
 13350  // SetDescription sets the Description field's value.
 13351  func (s *PutSlotTypeInput) SetDescription(v string) *PutSlotTypeInput {
 13352  	s.Description = &v
 13353  	return s
 13354  }
 13355  
 13356  // SetEnumerationValues sets the EnumerationValues field's value.
 13357  func (s *PutSlotTypeInput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeInput {
 13358  	s.EnumerationValues = v
 13359  	return s
 13360  }
 13361  
 13362  // SetName sets the Name field's value.
 13363  func (s *PutSlotTypeInput) SetName(v string) *PutSlotTypeInput {
 13364  	s.Name = &v
 13365  	return s
 13366  }
 13367  
 13368  // SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
 13369  func (s *PutSlotTypeInput) SetParentSlotTypeSignature(v string) *PutSlotTypeInput {
 13370  	s.ParentSlotTypeSignature = &v
 13371  	return s
 13372  }
 13373  
 13374  // SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
 13375  func (s *PutSlotTypeInput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeInput {
 13376  	s.SlotTypeConfigurations = v
 13377  	return s
 13378  }
 13379  
 13380  // SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
 13381  func (s *PutSlotTypeInput) SetValueSelectionStrategy(v string) *PutSlotTypeInput {
 13382  	s.ValueSelectionStrategy = &v
 13383  	return s
 13384  }
 13385  
 13386  type PutSlotTypeOutput struct {
 13387  	_ struct{} `type:"structure"`
 13388  
 13389  	// Checksum of the $LATEST version of the slot type.
 13390  	Checksum *string `locationName:"checksum" type:"string"`
 13391  
 13392  	// True if a new version of the slot type was created. If the createVersion
 13393  	// field was not specified in the request, the createVersion field is set to
 13394  	// false in the response.
 13395  	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
 13396  
 13397  	// The date that the slot type was created.
 13398  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 13399  
 13400  	// A description of the slot type.
 13401  	Description *string `locationName:"description" type:"string"`
 13402  
 13403  	// A list of EnumerationValue objects that defines the values that the slot
 13404  	// type can take.
 13405  	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
 13406  
 13407  	// The date that the slot type was updated. When you create a slot type, the
 13408  	// creation date and last update date are the same.
 13409  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 13410  
 13411  	// The name of the slot type.
 13412  	Name *string `locationName:"name" min:"1" type:"string"`
 13413  
 13414  	// The built-in slot type used as the parent of the slot type.
 13415  	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
 13416  
 13417  	// Configuration information that extends the parent built-in slot type.
 13418  	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
 13419  
 13420  	// The slot resolution strategy that Amazon Lex uses to determine the value
 13421  	// of the slot. For more information, see PutSlotType.
 13422  	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
 13423  
 13424  	// The version of the slot type. For a new slot type, the version is always
 13425  	// $LATEST.
 13426  	Version *string `locationName:"version" min:"1" type:"string"`
 13427  }
 13428  
 13429  // String returns the string representation.
 13430  //
 13431  // API parameter values that are decorated as "sensitive" in the API will not
 13432  // be included in the string output. The member name will be present, but the
 13433  // value will be replaced with "sensitive".
 13434  func (s PutSlotTypeOutput) String() string {
 13435  	return awsutil.Prettify(s)
 13436  }
 13437  
 13438  // GoString returns the string representation.
 13439  //
 13440  // API parameter values that are decorated as "sensitive" in the API will not
 13441  // be included in the string output. The member name will be present, but the
 13442  // value will be replaced with "sensitive".
 13443  func (s PutSlotTypeOutput) GoString() string {
 13444  	return s.String()
 13445  }
 13446  
 13447  // SetChecksum sets the Checksum field's value.
 13448  func (s *PutSlotTypeOutput) SetChecksum(v string) *PutSlotTypeOutput {
 13449  	s.Checksum = &v
 13450  	return s
 13451  }
 13452  
 13453  // SetCreateVersion sets the CreateVersion field's value.
 13454  func (s *PutSlotTypeOutput) SetCreateVersion(v bool) *PutSlotTypeOutput {
 13455  	s.CreateVersion = &v
 13456  	return s
 13457  }
 13458  
 13459  // SetCreatedDate sets the CreatedDate field's value.
 13460  func (s *PutSlotTypeOutput) SetCreatedDate(v time.Time) *PutSlotTypeOutput {
 13461  	s.CreatedDate = &v
 13462  	return s
 13463  }
 13464  
 13465  // SetDescription sets the Description field's value.
 13466  func (s *PutSlotTypeOutput) SetDescription(v string) *PutSlotTypeOutput {
 13467  	s.Description = &v
 13468  	return s
 13469  }
 13470  
 13471  // SetEnumerationValues sets the EnumerationValues field's value.
 13472  func (s *PutSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeOutput {
 13473  	s.EnumerationValues = v
 13474  	return s
 13475  }
 13476  
 13477  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 13478  func (s *PutSlotTypeOutput) SetLastUpdatedDate(v time.Time) *PutSlotTypeOutput {
 13479  	s.LastUpdatedDate = &v
 13480  	return s
 13481  }
 13482  
 13483  // SetName sets the Name field's value.
 13484  func (s *PutSlotTypeOutput) SetName(v string) *PutSlotTypeOutput {
 13485  	s.Name = &v
 13486  	return s
 13487  }
 13488  
 13489  // SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
 13490  func (s *PutSlotTypeOutput) SetParentSlotTypeSignature(v string) *PutSlotTypeOutput {
 13491  	s.ParentSlotTypeSignature = &v
 13492  	return s
 13493  }
 13494  
 13495  // SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
 13496  func (s *PutSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeOutput {
 13497  	s.SlotTypeConfigurations = v
 13498  	return s
 13499  }
 13500  
 13501  // SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
 13502  func (s *PutSlotTypeOutput) SetValueSelectionStrategy(v string) *PutSlotTypeOutput {
 13503  	s.ValueSelectionStrategy = &v
 13504  	return s
 13505  }
 13506  
 13507  // SetVersion sets the Version field's value.
 13508  func (s *PutSlotTypeOutput) SetVersion(v string) *PutSlotTypeOutput {
 13509  	s.Version = &v
 13510  	return s
 13511  }
 13512  
 13513  // The resource that you are attempting to delete is referred to by another
 13514  // resource. Use this information to remove references to the resource that
 13515  // you are trying to delete.
 13516  //
 13517  // The body of the exception contains a JSON object that describes the resource.
 13518  //
 13519  // { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
 13520  //
 13521  // "resourceReference": {
 13522  //
 13523  // "name": string, "version": string } }
 13524  type ResourceInUseException struct {
 13525  	_            struct{}                  `type:"structure"`
 13526  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13527  
 13528  	// Describes the resource that refers to the resource that you are attempting
 13529  	// to delete. This object is returned as part of the ResourceInUseException
 13530  	// exception.
 13531  	ExampleReference *ResourceReference `locationName:"exampleReference" type:"structure"`
 13532  
 13533  	Message_ *string `locationName:"message" type:"string"`
 13534  
 13535  	ReferenceType *string `locationName:"referenceType" type:"string" enum:"ReferenceType"`
 13536  }
 13537  
 13538  // String returns the string representation.
 13539  //
 13540  // API parameter values that are decorated as "sensitive" in the API will not
 13541  // be included in the string output. The member name will be present, but the
 13542  // value will be replaced with "sensitive".
 13543  func (s ResourceInUseException) String() string {
 13544  	return awsutil.Prettify(s)
 13545  }
 13546  
 13547  // GoString returns the string representation.
 13548  //
 13549  // API parameter values that are decorated as "sensitive" in the API will not
 13550  // be included in the string output. The member name will be present, but the
 13551  // value will be replaced with "sensitive".
 13552  func (s ResourceInUseException) GoString() string {
 13553  	return s.String()
 13554  }
 13555  
 13556  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
 13557  	return &ResourceInUseException{
 13558  		RespMetadata: v,
 13559  	}
 13560  }
 13561  
 13562  // Code returns the exception type name.
 13563  func (s *ResourceInUseException) Code() string {
 13564  	return "ResourceInUseException"
 13565  }
 13566  
 13567  // Message returns the exception's message.
 13568  func (s *ResourceInUseException) Message() string {
 13569  	if s.Message_ != nil {
 13570  		return *s.Message_
 13571  	}
 13572  	return ""
 13573  }
 13574  
 13575  // OrigErr always returns nil, satisfies awserr.Error interface.
 13576  func (s *ResourceInUseException) OrigErr() error {
 13577  	return nil
 13578  }
 13579  
 13580  func (s *ResourceInUseException) Error() string {
 13581  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 13582  }
 13583  
 13584  // Status code returns the HTTP status code for the request's response error.
 13585  func (s *ResourceInUseException) StatusCode() int {
 13586  	return s.RespMetadata.StatusCode
 13587  }
 13588  
 13589  // RequestID returns the service's response RequestID for request.
 13590  func (s *ResourceInUseException) RequestID() string {
 13591  	return s.RespMetadata.RequestID
 13592  }
 13593  
 13594  // Describes the resource that refers to the resource that you are attempting
 13595  // to delete. This object is returned as part of the ResourceInUseException
 13596  // exception.
 13597  type ResourceReference struct {
 13598  	_ struct{} `type:"structure"`
 13599  
 13600  	// The name of the resource that is using the resource that you are trying to
 13601  	// delete.
 13602  	Name *string `locationName:"name" min:"1" type:"string"`
 13603  
 13604  	// The version of the resource that is using the resource that you are trying
 13605  	// to delete.
 13606  	Version *string `locationName:"version" min:"1" type:"string"`
 13607  }
 13608  
 13609  // String returns the string representation.
 13610  //
 13611  // API parameter values that are decorated as "sensitive" in the API will not
 13612  // be included in the string output. The member name will be present, but the
 13613  // value will be replaced with "sensitive".
 13614  func (s ResourceReference) String() string {
 13615  	return awsutil.Prettify(s)
 13616  }
 13617  
 13618  // GoString returns the string representation.
 13619  //
 13620  // API parameter values that are decorated as "sensitive" in the API will not
 13621  // be included in the string output. The member name will be present, but the
 13622  // value will be replaced with "sensitive".
 13623  func (s ResourceReference) GoString() string {
 13624  	return s.String()
 13625  }
 13626  
 13627  // SetName sets the Name field's value.
 13628  func (s *ResourceReference) SetName(v string) *ResourceReference {
 13629  	s.Name = &v
 13630  	return s
 13631  }
 13632  
 13633  // SetVersion sets the Version field's value.
 13634  func (s *ResourceReference) SetVersion(v string) *ResourceReference {
 13635  	s.Version = &v
 13636  	return s
 13637  }
 13638  
 13639  // Identifies the version of a specific slot.
 13640  type Slot struct {
 13641  	_ struct{} `type:"structure"`
 13642  
 13643  	// A list of default values for the slot. Default values are used when Amazon
 13644  	// Lex hasn't determined a value for a slot. You can specify default values
 13645  	// from context variables, session attributes, and defined values.
 13646  	DefaultValueSpec *SlotDefaultValueSpec `locationName:"defaultValueSpec" type:"structure"`
 13647  
 13648  	// A description of the slot.
 13649  	Description *string `locationName:"description" type:"string"`
 13650  
 13651  	// The name of the slot.
 13652  	//
 13653  	// Name is a required field
 13654  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
 13655  
 13656  	// Determines whether a slot is obfuscated in conversation logs and stored utterances.
 13657  	// When you obfuscate a slot, the value is replaced by the slot name in curly
 13658  	// braces ({}). For example, if the slot name is "full_name", obfuscated values
 13659  	// are replaced with "{full_name}". For more information, see Slot Obfuscation
 13660  	// (https://docs.aws.amazon.com/lex/latest/dg/how-obfuscate.html).
 13661  	ObfuscationSetting *string `locationName:"obfuscationSetting" type:"string" enum:"ObfuscationSetting"`
 13662  
 13663  	// Directs Amazon Lex the order in which to elicit this slot value from the
 13664  	// user. For example, if the intent has two slots with priorities 1 and 2, AWS
 13665  	// Amazon Lex first elicits a value for the slot with priority 1.
 13666  	//
 13667  	// If multiple slots share the same priority, the order in which Amazon Lex
 13668  	// elicits values is arbitrary.
 13669  	Priority *int64 `locationName:"priority" type:"integer"`
 13670  
 13671  	// A set of possible responses for the slot type used by text-based clients.
 13672  	// A user chooses an option from the response card, instead of using text to
 13673  	// reply.
 13674  	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
 13675  
 13676  	// If you know a specific pattern with which users might respond to an Amazon
 13677  	// Lex request for a slot value, you can provide those utterances to improve
 13678  	// accuracy. This is optional. In most cases, Amazon Lex is capable of understanding
 13679  	// user utterances.
 13680  	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
 13681  
 13682  	// Specifies whether the slot is required or optional.
 13683  	//
 13684  	// SlotConstraint is a required field
 13685  	SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"`
 13686  
 13687  	// The type of the slot, either a custom slot type that you defined or one of
 13688  	// the built-in slot types.
 13689  	SlotType *string `locationName:"slotType" min:"1" type:"string"`
 13690  
 13691  	// The version of the slot type.
 13692  	SlotTypeVersion *string `locationName:"slotTypeVersion" min:"1" type:"string"`
 13693  
 13694  	// The prompt that Amazon Lex uses to elicit the slot value from the user.
 13695  	ValueElicitationPrompt *Prompt `locationName:"valueElicitationPrompt" type:"structure"`
 13696  }
 13697  
 13698  // String returns the string representation.
 13699  //
 13700  // API parameter values that are decorated as "sensitive" in the API will not
 13701  // be included in the string output. The member name will be present, but the
 13702  // value will be replaced with "sensitive".
 13703  func (s Slot) String() string {
 13704  	return awsutil.Prettify(s)
 13705  }
 13706  
 13707  // GoString returns the string representation.
 13708  //
 13709  // API parameter values that are decorated as "sensitive" in the API will not
 13710  // be included in the string output. The member name will be present, but the
 13711  // value will be replaced with "sensitive".
 13712  func (s Slot) GoString() string {
 13713  	return s.String()
 13714  }
 13715  
 13716  // Validate inspects the fields of the type to determine if they are valid.
 13717  func (s *Slot) Validate() error {
 13718  	invalidParams := request.ErrInvalidParams{Context: "Slot"}
 13719  	if s.Name == nil {
 13720  		invalidParams.Add(request.NewErrParamRequired("Name"))
 13721  	}
 13722  	if s.Name != nil && len(*s.Name) < 1 {
 13723  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 13724  	}
 13725  	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
 13726  		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
 13727  	}
 13728  	if s.SlotConstraint == nil {
 13729  		invalidParams.Add(request.NewErrParamRequired("SlotConstraint"))
 13730  	}
 13731  	if s.SlotType != nil && len(*s.SlotType) < 1 {
 13732  		invalidParams.Add(request.NewErrParamMinLen("SlotType", 1))
 13733  	}
 13734  	if s.SlotTypeVersion != nil && len(*s.SlotTypeVersion) < 1 {
 13735  		invalidParams.Add(request.NewErrParamMinLen("SlotTypeVersion", 1))
 13736  	}
 13737  	if s.DefaultValueSpec != nil {
 13738  		if err := s.DefaultValueSpec.Validate(); err != nil {
 13739  			invalidParams.AddNested("DefaultValueSpec", err.(request.ErrInvalidParams))
 13740  		}
 13741  	}
 13742  	if s.ValueElicitationPrompt != nil {
 13743  		if err := s.ValueElicitationPrompt.Validate(); err != nil {
 13744  			invalidParams.AddNested("ValueElicitationPrompt", err.(request.ErrInvalidParams))
 13745  		}
 13746  	}
 13747  
 13748  	if invalidParams.Len() > 0 {
 13749  		return invalidParams
 13750  	}
 13751  	return nil
 13752  }
 13753  
 13754  // SetDefaultValueSpec sets the DefaultValueSpec field's value.
 13755  func (s *Slot) SetDefaultValueSpec(v *SlotDefaultValueSpec) *Slot {
 13756  	s.DefaultValueSpec = v
 13757  	return s
 13758  }
 13759  
 13760  // SetDescription sets the Description field's value.
 13761  func (s *Slot) SetDescription(v string) *Slot {
 13762  	s.Description = &v
 13763  	return s
 13764  }
 13765  
 13766  // SetName sets the Name field's value.
 13767  func (s *Slot) SetName(v string) *Slot {
 13768  	s.Name = &v
 13769  	return s
 13770  }
 13771  
 13772  // SetObfuscationSetting sets the ObfuscationSetting field's value.
 13773  func (s *Slot) SetObfuscationSetting(v string) *Slot {
 13774  	s.ObfuscationSetting = &v
 13775  	return s
 13776  }
 13777  
 13778  // SetPriority sets the Priority field's value.
 13779  func (s *Slot) SetPriority(v int64) *Slot {
 13780  	s.Priority = &v
 13781  	return s
 13782  }
 13783  
 13784  // SetResponseCard sets the ResponseCard field's value.
 13785  func (s *Slot) SetResponseCard(v string) *Slot {
 13786  	s.ResponseCard = &v
 13787  	return s
 13788  }
 13789  
 13790  // SetSampleUtterances sets the SampleUtterances field's value.
 13791  func (s *Slot) SetSampleUtterances(v []*string) *Slot {
 13792  	s.SampleUtterances = v
 13793  	return s
 13794  }
 13795  
 13796  // SetSlotConstraint sets the SlotConstraint field's value.
 13797  func (s *Slot) SetSlotConstraint(v string) *Slot {
 13798  	s.SlotConstraint = &v
 13799  	return s
 13800  }
 13801  
 13802  // SetSlotType sets the SlotType field's value.
 13803  func (s *Slot) SetSlotType(v string) *Slot {
 13804  	s.SlotType = &v
 13805  	return s
 13806  }
 13807  
 13808  // SetSlotTypeVersion sets the SlotTypeVersion field's value.
 13809  func (s *Slot) SetSlotTypeVersion(v string) *Slot {
 13810  	s.SlotTypeVersion = &v
 13811  	return s
 13812  }
 13813  
 13814  // SetValueElicitationPrompt sets the ValueElicitationPrompt field's value.
 13815  func (s *Slot) SetValueElicitationPrompt(v *Prompt) *Slot {
 13816  	s.ValueElicitationPrompt = v
 13817  	return s
 13818  }
 13819  
 13820  // A default value for a slot.
 13821  type SlotDefaultValue struct {
 13822  	_ struct{} `type:"structure"`
 13823  
 13824  	// The default value for the slot. You can specify one of the following:
 13825  	//
 13826  	//    * #context-name.slot-name - The slot value "slot-name" in the context
 13827  	//    "context-name."
 13828  	//
 13829  	//    * {attribute} - The slot value of the session attribute "attribute."
 13830  	//
 13831  	//    * 'value' - The discrete value "value."
 13832  	//
 13833  	// DefaultValue is a required field
 13834  	DefaultValue *string `locationName:"defaultValue" min:"1" type:"string" required:"true"`
 13835  }
 13836  
 13837  // String returns the string representation.
 13838  //
 13839  // API parameter values that are decorated as "sensitive" in the API will not
 13840  // be included in the string output. The member name will be present, but the
 13841  // value will be replaced with "sensitive".
 13842  func (s SlotDefaultValue) String() string {
 13843  	return awsutil.Prettify(s)
 13844  }
 13845  
 13846  // GoString returns the string representation.
 13847  //
 13848  // API parameter values that are decorated as "sensitive" in the API will not
 13849  // be included in the string output. The member name will be present, but the
 13850  // value will be replaced with "sensitive".
 13851  func (s SlotDefaultValue) GoString() string {
 13852  	return s.String()
 13853  }
 13854  
 13855  // Validate inspects the fields of the type to determine if they are valid.
 13856  func (s *SlotDefaultValue) Validate() error {
 13857  	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValue"}
 13858  	if s.DefaultValue == nil {
 13859  		invalidParams.Add(request.NewErrParamRequired("DefaultValue"))
 13860  	}
 13861  	if s.DefaultValue != nil && len(*s.DefaultValue) < 1 {
 13862  		invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1))
 13863  	}
 13864  
 13865  	if invalidParams.Len() > 0 {
 13866  		return invalidParams
 13867  	}
 13868  	return nil
 13869  }
 13870  
 13871  // SetDefaultValue sets the DefaultValue field's value.
 13872  func (s *SlotDefaultValue) SetDefaultValue(v string) *SlotDefaultValue {
 13873  	s.DefaultValue = &v
 13874  	return s
 13875  }
 13876  
 13877  // Contains the default values for a slot. Default values are used when Amazon
 13878  // Lex hasn't determined a value for a slot.
 13879  type SlotDefaultValueSpec struct {
 13880  	_ struct{} `type:"structure"`
 13881  
 13882  	// The default values for a slot. You can specify more than one default. For
 13883  	// example, you can specify a default value to use from a matching context variable,
 13884  	// a session attribute, or a fixed value.
 13885  	//
 13886  	// The default value chosen is selected based on the order that you specify
 13887  	// them in the list. For example, if you specify a context variable and a fixed
 13888  	// value in that order, Amazon Lex uses the context variable if it is available,
 13889  	// else it uses the fixed value.
 13890  	//
 13891  	// DefaultValueList is a required field
 13892  	DefaultValueList []*SlotDefaultValue `locationName:"defaultValueList" type:"list" required:"true"`
 13893  }
 13894  
 13895  // String returns the string representation.
 13896  //
 13897  // API parameter values that are decorated as "sensitive" in the API will not
 13898  // be included in the string output. The member name will be present, but the
 13899  // value will be replaced with "sensitive".
 13900  func (s SlotDefaultValueSpec) String() string {
 13901  	return awsutil.Prettify(s)
 13902  }
 13903  
 13904  // GoString returns the string representation.
 13905  //
 13906  // API parameter values that are decorated as "sensitive" in the API will not
 13907  // be included in the string output. The member name will be present, but the
 13908  // value will be replaced with "sensitive".
 13909  func (s SlotDefaultValueSpec) GoString() string {
 13910  	return s.String()
 13911  }
 13912  
 13913  // Validate inspects the fields of the type to determine if they are valid.
 13914  func (s *SlotDefaultValueSpec) Validate() error {
 13915  	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValueSpec"}
 13916  	if s.DefaultValueList == nil {
 13917  		invalidParams.Add(request.NewErrParamRequired("DefaultValueList"))
 13918  	}
 13919  	if s.DefaultValueList != nil {
 13920  		for i, v := range s.DefaultValueList {
 13921  			if v == nil {
 13922  				continue
 13923  			}
 13924  			if err := v.Validate(); err != nil {
 13925  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultValueList", i), err.(request.ErrInvalidParams))
 13926  			}
 13927  		}
 13928  	}
 13929  
 13930  	if invalidParams.Len() > 0 {
 13931  		return invalidParams
 13932  	}
 13933  	return nil
 13934  }
 13935  
 13936  // SetDefaultValueList sets the DefaultValueList field's value.
 13937  func (s *SlotDefaultValueSpec) SetDefaultValueList(v []*SlotDefaultValue) *SlotDefaultValueSpec {
 13938  	s.DefaultValueList = v
 13939  	return s
 13940  }
 13941  
 13942  // Provides configuration information for a slot type.
 13943  type SlotTypeConfiguration struct {
 13944  	_ struct{} `type:"structure"`
 13945  
 13946  	// A regular expression used to validate the value of a slot.
 13947  	RegexConfiguration *SlotTypeRegexConfiguration `locationName:"regexConfiguration" type:"structure"`
 13948  }
 13949  
 13950  // String returns the string representation.
 13951  //
 13952  // API parameter values that are decorated as "sensitive" in the API will not
 13953  // be included in the string output. The member name will be present, but the
 13954  // value will be replaced with "sensitive".
 13955  func (s SlotTypeConfiguration) String() string {
 13956  	return awsutil.Prettify(s)
 13957  }
 13958  
 13959  // GoString returns the string representation.
 13960  //
 13961  // API parameter values that are decorated as "sensitive" in the API will not
 13962  // be included in the string output. The member name will be present, but the
 13963  // value will be replaced with "sensitive".
 13964  func (s SlotTypeConfiguration) GoString() string {
 13965  	return s.String()
 13966  }
 13967  
 13968  // Validate inspects the fields of the type to determine if they are valid.
 13969  func (s *SlotTypeConfiguration) Validate() error {
 13970  	invalidParams := request.ErrInvalidParams{Context: "SlotTypeConfiguration"}
 13971  	if s.RegexConfiguration != nil {
 13972  		if err := s.RegexConfiguration.Validate(); err != nil {
 13973  			invalidParams.AddNested("RegexConfiguration", err.(request.ErrInvalidParams))
 13974  		}
 13975  	}
 13976  
 13977  	if invalidParams.Len() > 0 {
 13978  		return invalidParams
 13979  	}
 13980  	return nil
 13981  }
 13982  
 13983  // SetRegexConfiguration sets the RegexConfiguration field's value.
 13984  func (s *SlotTypeConfiguration) SetRegexConfiguration(v *SlotTypeRegexConfiguration) *SlotTypeConfiguration {
 13985  	s.RegexConfiguration = v
 13986  	return s
 13987  }
 13988  
 13989  // Provides information about a slot type..
 13990  type SlotTypeMetadata struct {
 13991  	_ struct{} `type:"structure"`
 13992  
 13993  	// The date that the slot type was created.
 13994  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 13995  
 13996  	// A description of the slot type.
 13997  	Description *string `locationName:"description" type:"string"`
 13998  
 13999  	// The date that the slot type was updated. When you create a resource, the
 14000  	// creation date and last updated date are the same.
 14001  	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
 14002  
 14003  	// The name of the slot type.
 14004  	Name *string `locationName:"name" min:"1" type:"string"`
 14005  
 14006  	// The version of the slot type.
 14007  	Version *string `locationName:"version" min:"1" type:"string"`
 14008  }
 14009  
 14010  // String returns the string representation.
 14011  //
 14012  // API parameter values that are decorated as "sensitive" in the API will not
 14013  // be included in the string output. The member name will be present, but the
 14014  // value will be replaced with "sensitive".
 14015  func (s SlotTypeMetadata) String() string {
 14016  	return awsutil.Prettify(s)
 14017  }
 14018  
 14019  // GoString returns the string representation.
 14020  //
 14021  // API parameter values that are decorated as "sensitive" in the API will not
 14022  // be included in the string output. The member name will be present, but the
 14023  // value will be replaced with "sensitive".
 14024  func (s SlotTypeMetadata) GoString() string {
 14025  	return s.String()
 14026  }
 14027  
 14028  // SetCreatedDate sets the CreatedDate field's value.
 14029  func (s *SlotTypeMetadata) SetCreatedDate(v time.Time) *SlotTypeMetadata {
 14030  	s.CreatedDate = &v
 14031  	return s
 14032  }
 14033  
 14034  // SetDescription sets the Description field's value.
 14035  func (s *SlotTypeMetadata) SetDescription(v string) *SlotTypeMetadata {
 14036  	s.Description = &v
 14037  	return s
 14038  }
 14039  
 14040  // SetLastUpdatedDate sets the LastUpdatedDate field's value.
 14041  func (s *SlotTypeMetadata) SetLastUpdatedDate(v time.Time) *SlotTypeMetadata {
 14042  	s.LastUpdatedDate = &v
 14043  	return s
 14044  }
 14045  
 14046  // SetName sets the Name field's value.
 14047  func (s *SlotTypeMetadata) SetName(v string) *SlotTypeMetadata {
 14048  	s.Name = &v
 14049  	return s
 14050  }
 14051  
 14052  // SetVersion sets the Version field's value.
 14053  func (s *SlotTypeMetadata) SetVersion(v string) *SlotTypeMetadata {
 14054  	s.Version = &v
 14055  	return s
 14056  }
 14057  
 14058  // Provides a regular expression used to validate the value of a slot.
 14059  type SlotTypeRegexConfiguration struct {
 14060  	_ struct{} `type:"structure"`
 14061  
 14062  	// A regular expression used to validate the value of a slot.
 14063  	//
 14064  	// Use a standard regular expression. Amazon Lex supports the following characters
 14065  	// in the regular expression:
 14066  	//
 14067  	//    * A-Z, a-z
 14068  	//
 14069  	//    * 0-9
 14070  	//
 14071  	//    * Unicode characters ("\ u<Unicode>")
 14072  	//
 14073  	// Represent Unicode characters with four digits, for example "\u0041" or "\u005A".
 14074  	//
 14075  	// The following regular expression operators are not supported:
 14076  	//
 14077  	//    * Infinite repeaters: *, +, or {x,} with no upper bound.
 14078  	//
 14079  	//    * Wild card (.)
 14080  	//
 14081  	// Pattern is a required field
 14082  	Pattern *string `locationName:"pattern" min:"1" type:"string" required:"true"`
 14083  }
 14084  
 14085  // String returns the string representation.
 14086  //
 14087  // API parameter values that are decorated as "sensitive" in the API will not
 14088  // be included in the string output. The member name will be present, but the
 14089  // value will be replaced with "sensitive".
 14090  func (s SlotTypeRegexConfiguration) String() string {
 14091  	return awsutil.Prettify(s)
 14092  }
 14093  
 14094  // GoString returns the string representation.
 14095  //
 14096  // API parameter values that are decorated as "sensitive" in the API will not
 14097  // be included in the string output. The member name will be present, but the
 14098  // value will be replaced with "sensitive".
 14099  func (s SlotTypeRegexConfiguration) GoString() string {
 14100  	return s.String()
 14101  }
 14102  
 14103  // Validate inspects the fields of the type to determine if they are valid.
 14104  func (s *SlotTypeRegexConfiguration) Validate() error {
 14105  	invalidParams := request.ErrInvalidParams{Context: "SlotTypeRegexConfiguration"}
 14106  	if s.Pattern == nil {
 14107  		invalidParams.Add(request.NewErrParamRequired("Pattern"))
 14108  	}
 14109  	if s.Pattern != nil && len(*s.Pattern) < 1 {
 14110  		invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
 14111  	}
 14112  
 14113  	if invalidParams.Len() > 0 {
 14114  		return invalidParams
 14115  	}
 14116  	return nil
 14117  }
 14118  
 14119  // SetPattern sets the Pattern field's value.
 14120  func (s *SlotTypeRegexConfiguration) SetPattern(v string) *SlotTypeRegexConfiguration {
 14121  	s.Pattern = &v
 14122  	return s
 14123  }
 14124  
 14125  type StartImportInput struct {
 14126  	_ struct{} `type:"structure"`
 14127  
 14128  	// Specifies the action that the StartImport operation should take when there
 14129  	// is an existing resource with the same name.
 14130  	//
 14131  	//    * FAIL_ON_CONFLICT - The import operation is stopped on the first conflict
 14132  	//    between a resource in the import file and an existing resource. The name
 14133  	//    of the resource causing the conflict is in the failureReason field of
 14134  	//    the response to the GetImport operation. OVERWRITE_LATEST - The import
 14135  	//    operation proceeds even if there is a conflict with an existing resource.
 14136  	//    The $LASTEST version of the existing resource is overwritten with the
 14137  	//    data from the import file.
 14138  	//
 14139  	// MergeStrategy is a required field
 14140  	MergeStrategy *string `locationName:"mergeStrategy" type:"string" required:"true" enum:"MergeStrategy"`
 14141  
 14142  	// A zip archive in binary format. The archive should contain one file, a JSON
 14143  	// file containing the resource to import. The resource should match the type
 14144  	// specified in the resourceType field.
 14145  	// Payload is automatically base64 encoded/decoded by the SDK.
 14146  	//
 14147  	// Payload is a required field
 14148  	Payload []byte `locationName:"payload" type:"blob" required:"true"`
 14149  
 14150  	// Specifies the type of resource to export. Each resource also exports any
 14151  	// resources that it depends on.
 14152  	//
 14153  	//    * A bot exports dependent intents.
 14154  	//
 14155  	//    * An intent exports dependent slot types.
 14156  	//
 14157  	// ResourceType is a required field
 14158  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
 14159  
 14160  	// A list of tags to add to the imported bot. You can only add tags when you
 14161  	// import a bot, you can't add tags to an intent or slot type.
 14162  	Tags []*Tag `locationName:"tags" type:"list"`
 14163  }
 14164  
 14165  // String returns the string representation.
 14166  //
 14167  // API parameter values that are decorated as "sensitive" in the API will not
 14168  // be included in the string output. The member name will be present, but the
 14169  // value will be replaced with "sensitive".
 14170  func (s StartImportInput) String() string {
 14171  	return awsutil.Prettify(s)
 14172  }
 14173  
 14174  // GoString returns the string representation.
 14175  //
 14176  // API parameter values that are decorated as "sensitive" in the API will not
 14177  // be included in the string output. The member name will be present, but the
 14178  // value will be replaced with "sensitive".
 14179  func (s StartImportInput) GoString() string {
 14180  	return s.String()
 14181  }
 14182  
 14183  // Validate inspects the fields of the type to determine if they are valid.
 14184  func (s *StartImportInput) Validate() error {
 14185  	invalidParams := request.ErrInvalidParams{Context: "StartImportInput"}
 14186  	if s.MergeStrategy == nil {
 14187  		invalidParams.Add(request.NewErrParamRequired("MergeStrategy"))
 14188  	}
 14189  	if s.Payload == nil {
 14190  		invalidParams.Add(request.NewErrParamRequired("Payload"))
 14191  	}
 14192  	if s.ResourceType == nil {
 14193  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
 14194  	}
 14195  	if s.Tags != nil {
 14196  		for i, v := range s.Tags {
 14197  			if v == nil {
 14198  				continue
 14199  			}
 14200  			if err := v.Validate(); err != nil {
 14201  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 14202  			}
 14203  		}
 14204  	}
 14205  
 14206  	if invalidParams.Len() > 0 {
 14207  		return invalidParams
 14208  	}
 14209  	return nil
 14210  }
 14211  
 14212  // SetMergeStrategy sets the MergeStrategy field's value.
 14213  func (s *StartImportInput) SetMergeStrategy(v string) *StartImportInput {
 14214  	s.MergeStrategy = &v
 14215  	return s
 14216  }
 14217  
 14218  // SetPayload sets the Payload field's value.
 14219  func (s *StartImportInput) SetPayload(v []byte) *StartImportInput {
 14220  	s.Payload = v
 14221  	return s
 14222  }
 14223  
 14224  // SetResourceType sets the ResourceType field's value.
 14225  func (s *StartImportInput) SetResourceType(v string) *StartImportInput {
 14226  	s.ResourceType = &v
 14227  	return s
 14228  }
 14229  
 14230  // SetTags sets the Tags field's value.
 14231  func (s *StartImportInput) SetTags(v []*Tag) *StartImportInput {
 14232  	s.Tags = v
 14233  	return s
 14234  }
 14235  
 14236  type StartImportOutput struct {
 14237  	_ struct{} `type:"structure"`
 14238  
 14239  	// A timestamp for the date and time that the import job was requested.
 14240  	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
 14241  
 14242  	// The identifier for the specific import job.
 14243  	ImportId *string `locationName:"importId" type:"string"`
 14244  
 14245  	// The status of the import job. If the status is FAILED, you can get the reason
 14246  	// for the failure using the GetImport operation.
 14247  	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
 14248  
 14249  	// The action to take when there is a merge conflict.
 14250  	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
 14251  
 14252  	// The name given to the import job.
 14253  	Name *string `locationName:"name" min:"1" type:"string"`
 14254  
 14255  	// The type of resource to import.
 14256  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
 14257  
 14258  	// A list of tags added to the imported bot.
 14259  	Tags []*Tag `locationName:"tags" type:"list"`
 14260  }
 14261  
 14262  // String returns the string representation.
 14263  //
 14264  // API parameter values that are decorated as "sensitive" in the API will not
 14265  // be included in the string output. The member name will be present, but the
 14266  // value will be replaced with "sensitive".
 14267  func (s StartImportOutput) String() string {
 14268  	return awsutil.Prettify(s)
 14269  }
 14270  
 14271  // GoString returns the string representation.
 14272  //
 14273  // API parameter values that are decorated as "sensitive" in the API will not
 14274  // be included in the string output. The member name will be present, but the
 14275  // value will be replaced with "sensitive".
 14276  func (s StartImportOutput) GoString() string {
 14277  	return s.String()
 14278  }
 14279  
 14280  // SetCreatedDate sets the CreatedDate field's value.
 14281  func (s *StartImportOutput) SetCreatedDate(v time.Time) *StartImportOutput {
 14282  	s.CreatedDate = &v
 14283  	return s
 14284  }
 14285  
 14286  // SetImportId sets the ImportId field's value.
 14287  func (s *StartImportOutput) SetImportId(v string) *StartImportOutput {
 14288  	s.ImportId = &v
 14289  	return s
 14290  }
 14291  
 14292  // SetImportStatus sets the ImportStatus field's value.
 14293  func (s *StartImportOutput) SetImportStatus(v string) *StartImportOutput {
 14294  	s.ImportStatus = &v
 14295  	return s
 14296  }
 14297  
 14298  // SetMergeStrategy sets the MergeStrategy field's value.
 14299  func (s *StartImportOutput) SetMergeStrategy(v string) *StartImportOutput {
 14300  	s.MergeStrategy = &v
 14301  	return s
 14302  }
 14303  
 14304  // SetName sets the Name field's value.
 14305  func (s *StartImportOutput) SetName(v string) *StartImportOutput {
 14306  	s.Name = &v
 14307  	return s
 14308  }
 14309  
 14310  // SetResourceType sets the ResourceType field's value.
 14311  func (s *StartImportOutput) SetResourceType(v string) *StartImportOutput {
 14312  	s.ResourceType = &v
 14313  	return s
 14314  }
 14315  
 14316  // SetTags sets the Tags field's value.
 14317  func (s *StartImportOutput) SetTags(v []*Tag) *StartImportOutput {
 14318  	s.Tags = v
 14319  	return s
 14320  }
 14321  
 14322  type StartMigrationInput struct {
 14323  	_ struct{} `type:"structure"`
 14324  
 14325  	// The strategy used to conduct the migration.
 14326  	//
 14327  	//    * CREATE_NEW - Creates a new Amazon Lex V2 bot and migrates the Amazon
 14328  	//    Lex V1 bot to the new bot.
 14329  	//
 14330  	//    * UPDATE_EXISTING - Overwrites the existing Amazon Lex V2 bot metadata
 14331  	//    and the locale being migrated. It doesn't change any other locales in
 14332  	//    the Amazon Lex V2 bot. If the locale doesn't exist, a new locale is created
 14333  	//    in the Amazon Lex V2 bot.
 14334  	//
 14335  	// MigrationStrategy is a required field
 14336  	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" required:"true" enum:"MigrationStrategy"`
 14337  
 14338  	// The name of the Amazon Lex V1 bot that you are migrating to Amazon Lex V2.
 14339  	//
 14340  	// V1BotName is a required field
 14341  	V1BotName *string `locationName:"v1BotName" min:"2" type:"string" required:"true"`
 14342  
 14343  	// The version of the bot to migrate to Amazon Lex V2. You can migrate the $LATEST
 14344  	// version as well as any numbered version.
 14345  	//
 14346  	// V1BotVersion is a required field
 14347  	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string" required:"true"`
 14348  
 14349  	// The name of the Amazon Lex V2 bot that you are migrating the Amazon Lex V1
 14350  	// bot to.
 14351  	//
 14352  	//    * If the Amazon Lex V2 bot doesn't exist, you must use the CREATE_NEW
 14353  	//    migration strategy.
 14354  	//
 14355  	//    * If the Amazon Lex V2 bot exists, you must use the UPDATE_EXISTING migration
 14356  	//    strategy to change the contents of the Amazon Lex V2 bot.
 14357  	//
 14358  	// V2BotName is a required field
 14359  	V2BotName *string `locationName:"v2BotName" min:"1" type:"string" required:"true"`
 14360  
 14361  	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
 14362  	//
 14363  	// V2BotRole is a required field
 14364  	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string" required:"true"`
 14365  }
 14366  
 14367  // String returns the string representation.
 14368  //
 14369  // API parameter values that are decorated as "sensitive" in the API will not
 14370  // be included in the string output. The member name will be present, but the
 14371  // value will be replaced with "sensitive".
 14372  func (s StartMigrationInput) String() string {
 14373  	return awsutil.Prettify(s)
 14374  }
 14375  
 14376  // GoString returns the string representation.
 14377  //
 14378  // API parameter values that are decorated as "sensitive" in the API will not
 14379  // be included in the string output. The member name will be present, but the
 14380  // value will be replaced with "sensitive".
 14381  func (s StartMigrationInput) GoString() string {
 14382  	return s.String()
 14383  }
 14384  
 14385  // Validate inspects the fields of the type to determine if they are valid.
 14386  func (s *StartMigrationInput) Validate() error {
 14387  	invalidParams := request.ErrInvalidParams{Context: "StartMigrationInput"}
 14388  	if s.MigrationStrategy == nil {
 14389  		invalidParams.Add(request.NewErrParamRequired("MigrationStrategy"))
 14390  	}
 14391  	if s.V1BotName == nil {
 14392  		invalidParams.Add(request.NewErrParamRequired("V1BotName"))
 14393  	}
 14394  	if s.V1BotName != nil && len(*s.V1BotName) < 2 {
 14395  		invalidParams.Add(request.NewErrParamMinLen("V1BotName", 2))
 14396  	}
 14397  	if s.V1BotVersion == nil {
 14398  		invalidParams.Add(request.NewErrParamRequired("V1BotVersion"))
 14399  	}
 14400  	if s.V1BotVersion != nil && len(*s.V1BotVersion) < 1 {
 14401  		invalidParams.Add(request.NewErrParamMinLen("V1BotVersion", 1))
 14402  	}
 14403  	if s.V2BotName == nil {
 14404  		invalidParams.Add(request.NewErrParamRequired("V2BotName"))
 14405  	}
 14406  	if s.V2BotName != nil && len(*s.V2BotName) < 1 {
 14407  		invalidParams.Add(request.NewErrParamMinLen("V2BotName", 1))
 14408  	}
 14409  	if s.V2BotRole == nil {
 14410  		invalidParams.Add(request.NewErrParamRequired("V2BotRole"))
 14411  	}
 14412  	if s.V2BotRole != nil && len(*s.V2BotRole) < 20 {
 14413  		invalidParams.Add(request.NewErrParamMinLen("V2BotRole", 20))
 14414  	}
 14415  
 14416  	if invalidParams.Len() > 0 {
 14417  		return invalidParams
 14418  	}
 14419  	return nil
 14420  }
 14421  
 14422  // SetMigrationStrategy sets the MigrationStrategy field's value.
 14423  func (s *StartMigrationInput) SetMigrationStrategy(v string) *StartMigrationInput {
 14424  	s.MigrationStrategy = &v
 14425  	return s
 14426  }
 14427  
 14428  // SetV1BotName sets the V1BotName field's value.
 14429  func (s *StartMigrationInput) SetV1BotName(v string) *StartMigrationInput {
 14430  	s.V1BotName = &v
 14431  	return s
 14432  }
 14433  
 14434  // SetV1BotVersion sets the V1BotVersion field's value.
 14435  func (s *StartMigrationInput) SetV1BotVersion(v string) *StartMigrationInput {
 14436  	s.V1BotVersion = &v
 14437  	return s
 14438  }
 14439  
 14440  // SetV2BotName sets the V2BotName field's value.
 14441  func (s *StartMigrationInput) SetV2BotName(v string) *StartMigrationInput {
 14442  	s.V2BotName = &v
 14443  	return s
 14444  }
 14445  
 14446  // SetV2BotRole sets the V2BotRole field's value.
 14447  func (s *StartMigrationInput) SetV2BotRole(v string) *StartMigrationInput {
 14448  	s.V2BotRole = &v
 14449  	return s
 14450  }
 14451  
 14452  type StartMigrationOutput struct {
 14453  	_ struct{} `type:"structure"`
 14454  
 14455  	// The unique identifier that Amazon Lex assigned to the migration.
 14456  	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
 14457  
 14458  	// The strategy used to conduct the migration.
 14459  	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
 14460  
 14461  	// The date and time that the migration started.
 14462  	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
 14463  
 14464  	// The locale used for the Amazon Lex V1 bot.
 14465  	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
 14466  
 14467  	// The name of the Amazon Lex V1 bot that you are migrating to Amazon Lex V2.
 14468  	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
 14469  
 14470  	// The version of the bot to migrate to Amazon Lex V2.
 14471  	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
 14472  
 14473  	// The unique identifier for the Amazon Lex V2 bot.
 14474  	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
 14475  
 14476  	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
 14477  	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
 14478  }
 14479  
 14480  // String returns the string representation.
 14481  //
 14482  // API parameter values that are decorated as "sensitive" in the API will not
 14483  // be included in the string output. The member name will be present, but the
 14484  // value will be replaced with "sensitive".
 14485  func (s StartMigrationOutput) String() string {
 14486  	return awsutil.Prettify(s)
 14487  }
 14488  
 14489  // GoString returns the string representation.
 14490  //
 14491  // API parameter values that are decorated as "sensitive" in the API will not
 14492  // be included in the string output. The member name will be present, but the
 14493  // value will be replaced with "sensitive".
 14494  func (s StartMigrationOutput) GoString() string {
 14495  	return s.String()
 14496  }
 14497  
 14498  // SetMigrationId sets the MigrationId field's value.
 14499  func (s *StartMigrationOutput) SetMigrationId(v string) *StartMigrationOutput {
 14500  	s.MigrationId = &v
 14501  	return s
 14502  }
 14503  
 14504  // SetMigrationStrategy sets the MigrationStrategy field's value.
 14505  func (s *StartMigrationOutput) SetMigrationStrategy(v string) *StartMigrationOutput {
 14506  	s.MigrationStrategy = &v
 14507  	return s
 14508  }
 14509  
 14510  // SetMigrationTimestamp sets the MigrationTimestamp field's value.
 14511  func (s *StartMigrationOutput) SetMigrationTimestamp(v time.Time) *StartMigrationOutput {
 14512  	s.MigrationTimestamp = &v
 14513  	return s
 14514  }
 14515  
 14516  // SetV1BotLocale sets the V1BotLocale field's value.
 14517  func (s *StartMigrationOutput) SetV1BotLocale(v string) *StartMigrationOutput {
 14518  	s.V1BotLocale = &v
 14519  	return s
 14520  }
 14521  
 14522  // SetV1BotName sets the V1BotName field's value.
 14523  func (s *StartMigrationOutput) SetV1BotName(v string) *StartMigrationOutput {
 14524  	s.V1BotName = &v
 14525  	return s
 14526  }
 14527  
 14528  // SetV1BotVersion sets the V1BotVersion field's value.
 14529  func (s *StartMigrationOutput) SetV1BotVersion(v string) *StartMigrationOutput {
 14530  	s.V1BotVersion = &v
 14531  	return s
 14532  }
 14533  
 14534  // SetV2BotId sets the V2BotId field's value.
 14535  func (s *StartMigrationOutput) SetV2BotId(v string) *StartMigrationOutput {
 14536  	s.V2BotId = &v
 14537  	return s
 14538  }
 14539  
 14540  // SetV2BotRole sets the V2BotRole field's value.
 14541  func (s *StartMigrationOutput) SetV2BotRole(v string) *StartMigrationOutput {
 14542  	s.V2BotRole = &v
 14543  	return s
 14544  }
 14545  
 14546  // A collection of messages that convey information to the user. At runtime,
 14547  // Amazon Lex selects the message to convey.
 14548  type Statement struct {
 14549  	_ struct{} `type:"structure"`
 14550  
 14551  	// A collection of message objects.
 14552  	//
 14553  	// Messages is a required field
 14554  	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
 14555  
 14556  	// At runtime, if the client is using the PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
 14557  	// API, Amazon Lex includes the response card in the response. It substitutes
 14558  	// all of the session attributes and slot values for placeholders in the response
 14559  	// card.
 14560  	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
 14561  }
 14562  
 14563  // String returns the string representation.
 14564  //
 14565  // API parameter values that are decorated as "sensitive" in the API will not
 14566  // be included in the string output. The member name will be present, but the
 14567  // value will be replaced with "sensitive".
 14568  func (s Statement) String() string {
 14569  	return awsutil.Prettify(s)
 14570  }
 14571  
 14572  // GoString returns the string representation.
 14573  //
 14574  // API parameter values that are decorated as "sensitive" in the API will not
 14575  // be included in the string output. The member name will be present, but the
 14576  // value will be replaced with "sensitive".
 14577  func (s Statement) GoString() string {
 14578  	return s.String()
 14579  }
 14580  
 14581  // Validate inspects the fields of the type to determine if they are valid.
 14582  func (s *Statement) Validate() error {
 14583  	invalidParams := request.ErrInvalidParams{Context: "Statement"}
 14584  	if s.Messages == nil {
 14585  		invalidParams.Add(request.NewErrParamRequired("Messages"))
 14586  	}
 14587  	if s.Messages != nil && len(s.Messages) < 1 {
 14588  		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
 14589  	}
 14590  	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
 14591  		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
 14592  	}
 14593  	if s.Messages != nil {
 14594  		for i, v := range s.Messages {
 14595  			if v == nil {
 14596  				continue
 14597  			}
 14598  			if err := v.Validate(); err != nil {
 14599  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
 14600  			}
 14601  		}
 14602  	}
 14603  
 14604  	if invalidParams.Len() > 0 {
 14605  		return invalidParams
 14606  	}
 14607  	return nil
 14608  }
 14609  
 14610  // SetMessages sets the Messages field's value.
 14611  func (s *Statement) SetMessages(v []*Message) *Statement {
 14612  	s.Messages = v
 14613  	return s
 14614  }
 14615  
 14616  // SetResponseCard sets the ResponseCard field's value.
 14617  func (s *Statement) SetResponseCard(v string) *Statement {
 14618  	s.ResponseCard = &v
 14619  	return s
 14620  }
 14621  
 14622  // A list of key/value pairs that identify a bot, bot alias, or bot channel.
 14623  // Tag keys and values can consist of Unicode letters, digits, white space,
 14624  // and any of the following symbols: _ . : / = + - @.
 14625  type Tag struct {
 14626  	_ struct{} `type:"structure"`
 14627  
 14628  	// The key for the tag. Keys are not case-sensitive and must be unique.
 14629  	//
 14630  	// Key is a required field
 14631  	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
 14632  
 14633  	// The value associated with a key. The value may be an empty string but it
 14634  	// can't be null.
 14635  	//
 14636  	// Value is a required field
 14637  	Value *string `locationName:"value" type:"string" required:"true"`
 14638  }
 14639  
 14640  // String returns the string representation.
 14641  //
 14642  // API parameter values that are decorated as "sensitive" in the API will not
 14643  // be included in the string output. The member name will be present, but the
 14644  // value will be replaced with "sensitive".
 14645  func (s Tag) String() string {
 14646  	return awsutil.Prettify(s)
 14647  }
 14648  
 14649  // GoString returns the string representation.
 14650  //
 14651  // API parameter values that are decorated as "sensitive" in the API will not
 14652  // be included in the string output. The member name will be present, but the
 14653  // value will be replaced with "sensitive".
 14654  func (s Tag) GoString() string {
 14655  	return s.String()
 14656  }
 14657  
 14658  // Validate inspects the fields of the type to determine if they are valid.
 14659  func (s *Tag) Validate() error {
 14660  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 14661  	if s.Key == nil {
 14662  		invalidParams.Add(request.NewErrParamRequired("Key"))
 14663  	}
 14664  	if s.Key != nil && len(*s.Key) < 1 {
 14665  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 14666  	}
 14667  	if s.Value == nil {
 14668  		invalidParams.Add(request.NewErrParamRequired("Value"))
 14669  	}
 14670  
 14671  	if invalidParams.Len() > 0 {
 14672  		return invalidParams
 14673  	}
 14674  	return nil
 14675  }
 14676  
 14677  // SetKey sets the Key field's value.
 14678  func (s *Tag) SetKey(v string) *Tag {
 14679  	s.Key = &v
 14680  	return s
 14681  }
 14682  
 14683  // SetValue sets the Value field's value.
 14684  func (s *Tag) SetValue(v string) *Tag {
 14685  	s.Value = &v
 14686  	return s
 14687  }
 14688  
 14689  type TagResourceInput struct {
 14690  	_ struct{} `type:"structure"`
 14691  
 14692  	// The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.
 14693  	//
 14694  	// ResourceArn is a required field
 14695  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
 14696  
 14697  	// A list of tag keys to add to the resource. If a tag key already exists, the
 14698  	// existing value is replaced with the new value.
 14699  	//
 14700  	// Tags is a required field
 14701  	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
 14702  }
 14703  
 14704  // String returns the string representation.
 14705  //
 14706  // API parameter values that are decorated as "sensitive" in the API will not
 14707  // be included in the string output. The member name will be present, but the
 14708  // value will be replaced with "sensitive".
 14709  func (s TagResourceInput) String() string {
 14710  	return awsutil.Prettify(s)
 14711  }
 14712  
 14713  // GoString returns the string representation.
 14714  //
 14715  // API parameter values that are decorated as "sensitive" in the API will not
 14716  // be included in the string output. The member name will be present, but the
 14717  // value will be replaced with "sensitive".
 14718  func (s TagResourceInput) GoString() string {
 14719  	return s.String()
 14720  }
 14721  
 14722  // Validate inspects the fields of the type to determine if they are valid.
 14723  func (s *TagResourceInput) Validate() error {
 14724  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 14725  	if s.ResourceArn == nil {
 14726  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 14727  	}
 14728  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 14729  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 14730  	}
 14731  	if s.Tags == nil {
 14732  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 14733  	}
 14734  	if s.Tags != nil {
 14735  		for i, v := range s.Tags {
 14736  			if v == nil {
 14737  				continue
 14738  			}
 14739  			if err := v.Validate(); err != nil {
 14740  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 14741  			}
 14742  		}
 14743  	}
 14744  
 14745  	if invalidParams.Len() > 0 {
 14746  		return invalidParams
 14747  	}
 14748  	return nil
 14749  }
 14750  
 14751  // SetResourceArn sets the ResourceArn field's value.
 14752  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 14753  	s.ResourceArn = &v
 14754  	return s
 14755  }
 14756  
 14757  // SetTags sets the Tags field's value.
 14758  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 14759  	s.Tags = v
 14760  	return s
 14761  }
 14762  
 14763  type TagResourceOutput struct {
 14764  	_ struct{} `type:"structure" nopayload:"true"`
 14765  }
 14766  
 14767  // String returns the string representation.
 14768  //
 14769  // API parameter values that are decorated as "sensitive" in the API will not
 14770  // be included in the string output. The member name will be present, but the
 14771  // value will be replaced with "sensitive".
 14772  func (s TagResourceOutput) String() string {
 14773  	return awsutil.Prettify(s)
 14774  }
 14775  
 14776  // GoString returns the string representation.
 14777  //
 14778  // API parameter values that are decorated as "sensitive" in the API will not
 14779  // be included in the string output. The member name will be present, but the
 14780  // value will be replaced with "sensitive".
 14781  func (s TagResourceOutput) GoString() string {
 14782  	return s.String()
 14783  }
 14784  
 14785  type UntagResourceInput struct {
 14786  	_ struct{} `type:"structure" nopayload:"true"`
 14787  
 14788  	// The Amazon Resource Name (ARN) of the resource to remove the tags from.
 14789  	//
 14790  	// ResourceArn is a required field
 14791  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
 14792  
 14793  	// A list of tag keys to remove from the resource. If a tag key does not exist
 14794  	// on the resource, it is ignored.
 14795  	//
 14796  	// TagKeys is a required field
 14797  	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
 14798  }
 14799  
 14800  // String returns the string representation.
 14801  //
 14802  // API parameter values that are decorated as "sensitive" in the API will not
 14803  // be included in the string output. The member name will be present, but the
 14804  // value will be replaced with "sensitive".
 14805  func (s UntagResourceInput) String() string {
 14806  	return awsutil.Prettify(s)
 14807  }
 14808  
 14809  // GoString returns the string representation.
 14810  //
 14811  // API parameter values that are decorated as "sensitive" in the API will not
 14812  // be included in the string output. The member name will be present, but the
 14813  // value will be replaced with "sensitive".
 14814  func (s UntagResourceInput) GoString() string {
 14815  	return s.String()
 14816  }
 14817  
 14818  // Validate inspects the fields of the type to determine if they are valid.
 14819  func (s *UntagResourceInput) Validate() error {
 14820  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 14821  	if s.ResourceArn == nil {
 14822  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 14823  	}
 14824  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 14825  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 14826  	}
 14827  	if s.TagKeys == nil {
 14828  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 14829  	}
 14830  
 14831  	if invalidParams.Len() > 0 {
 14832  		return invalidParams
 14833  	}
 14834  	return nil
 14835  }
 14836  
 14837  // SetResourceArn sets the ResourceArn field's value.
 14838  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 14839  	s.ResourceArn = &v
 14840  	return s
 14841  }
 14842  
 14843  // SetTagKeys sets the TagKeys field's value.
 14844  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 14845  	s.TagKeys = v
 14846  	return s
 14847  }
 14848  
 14849  type UntagResourceOutput struct {
 14850  	_ struct{} `type:"structure" nopayload:"true"`
 14851  }
 14852  
 14853  // String returns the string representation.
 14854  //
 14855  // API parameter values that are decorated as "sensitive" in the API will not
 14856  // be included in the string output. The member name will be present, but the
 14857  // value will be replaced with "sensitive".
 14858  func (s UntagResourceOutput) String() string {
 14859  	return awsutil.Prettify(s)
 14860  }
 14861  
 14862  // GoString returns the string representation.
 14863  //
 14864  // API parameter values that are decorated as "sensitive" in the API will not
 14865  // be included in the string output. The member name will be present, but the
 14866  // value will be replaced with "sensitive".
 14867  func (s UntagResourceOutput) GoString() string {
 14868  	return s.String()
 14869  }
 14870  
 14871  // Provides information about a single utterance that was made to your bot.
 14872  type UtteranceData struct {
 14873  	_ struct{} `type:"structure"`
 14874  
 14875  	// The number of times that the utterance was processed.
 14876  	Count *int64 `locationName:"count" type:"integer"`
 14877  
 14878  	// The total number of individuals that used the utterance.
 14879  	DistinctUsers *int64 `locationName:"distinctUsers" type:"integer"`
 14880  
 14881  	// The date that the utterance was first recorded.
 14882  	FirstUtteredDate *time.Time `locationName:"firstUtteredDate" type:"timestamp"`
 14883  
 14884  	// The date that the utterance was last recorded.
 14885  	LastUtteredDate *time.Time `locationName:"lastUtteredDate" type:"timestamp"`
 14886  
 14887  	// The text that was entered by the user or the text representation of an audio
 14888  	// clip.
 14889  	UtteranceString *string `locationName:"utteranceString" min:"1" type:"string"`
 14890  }
 14891  
 14892  // String returns the string representation.
 14893  //
 14894  // API parameter values that are decorated as "sensitive" in the API will not
 14895  // be included in the string output. The member name will be present, but the
 14896  // value will be replaced with "sensitive".
 14897  func (s UtteranceData) String() string {
 14898  	return awsutil.Prettify(s)
 14899  }
 14900  
 14901  // GoString returns the string representation.
 14902  //
 14903  // API parameter values that are decorated as "sensitive" in the API will not
 14904  // be included in the string output. The member name will be present, but the
 14905  // value will be replaced with "sensitive".
 14906  func (s UtteranceData) GoString() string {
 14907  	return s.String()
 14908  }
 14909  
 14910  // SetCount sets the Count field's value.
 14911  func (s *UtteranceData) SetCount(v int64) *UtteranceData {
 14912  	s.Count = &v
 14913  	return s
 14914  }
 14915  
 14916  // SetDistinctUsers sets the DistinctUsers field's value.
 14917  func (s *UtteranceData) SetDistinctUsers(v int64) *UtteranceData {
 14918  	s.DistinctUsers = &v
 14919  	return s
 14920  }
 14921  
 14922  // SetFirstUtteredDate sets the FirstUtteredDate field's value.
 14923  func (s *UtteranceData) SetFirstUtteredDate(v time.Time) *UtteranceData {
 14924  	s.FirstUtteredDate = &v
 14925  	return s
 14926  }
 14927  
 14928  // SetLastUtteredDate sets the LastUtteredDate field's value.
 14929  func (s *UtteranceData) SetLastUtteredDate(v time.Time) *UtteranceData {
 14930  	s.LastUtteredDate = &v
 14931  	return s
 14932  }
 14933  
 14934  // SetUtteranceString sets the UtteranceString field's value.
 14935  func (s *UtteranceData) SetUtteranceString(v string) *UtteranceData {
 14936  	s.UtteranceString = &v
 14937  	return s
 14938  }
 14939  
 14940  // Provides a list of utterances that have been made to a specific version of
 14941  // your bot. The list contains a maximum of 100 utterances.
 14942  type UtteranceList struct {
 14943  	_ struct{} `type:"structure"`
 14944  
 14945  	// The version of the bot that processed the list.
 14946  	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
 14947  
 14948  	// One or more UtteranceData objects that contain information about the utterances
 14949  	// that have been made to a bot. The maximum number of object is 100.
 14950  	Utterances []*UtteranceData `locationName:"utterances" type:"list"`
 14951  }
 14952  
 14953  // String returns the string representation.
 14954  //
 14955  // API parameter values that are decorated as "sensitive" in the API will not
 14956  // be included in the string output. The member name will be present, but the
 14957  // value will be replaced with "sensitive".
 14958  func (s UtteranceList) String() string {
 14959  	return awsutil.Prettify(s)
 14960  }
 14961  
 14962  // GoString returns the string representation.
 14963  //
 14964  // API parameter values that are decorated as "sensitive" in the API will not
 14965  // be included in the string output. The member name will be present, but the
 14966  // value will be replaced with "sensitive".
 14967  func (s UtteranceList) GoString() string {
 14968  	return s.String()
 14969  }
 14970  
 14971  // SetBotVersion sets the BotVersion field's value.
 14972  func (s *UtteranceList) SetBotVersion(v string) *UtteranceList {
 14973  	s.BotVersion = &v
 14974  	return s
 14975  }
 14976  
 14977  // SetUtterances sets the Utterances field's value.
 14978  func (s *UtteranceList) SetUtterances(v []*UtteranceData) *UtteranceList {
 14979  	s.Utterances = v
 14980  	return s
 14981  }
 14982  
 14983  const (
 14984  	// ChannelStatusInProgress is a ChannelStatus enum value
 14985  	ChannelStatusInProgress = "IN_PROGRESS"
 14986  
 14987  	// ChannelStatusCreated is a ChannelStatus enum value
 14988  	ChannelStatusCreated = "CREATED"
 14989  
 14990  	// ChannelStatusFailed is a ChannelStatus enum value
 14991  	ChannelStatusFailed = "FAILED"
 14992  )
 14993  
 14994  // ChannelStatus_Values returns all elements of the ChannelStatus enum
 14995  func ChannelStatus_Values() []string {
 14996  	return []string{
 14997  		ChannelStatusInProgress,
 14998  		ChannelStatusCreated,
 14999  		ChannelStatusFailed,
 15000  	}
 15001  }
 15002  
 15003  const (
 15004  	// ChannelTypeFacebook is a ChannelType enum value
 15005  	ChannelTypeFacebook = "Facebook"
 15006  
 15007  	// ChannelTypeSlack is a ChannelType enum value
 15008  	ChannelTypeSlack = "Slack"
 15009  
 15010  	// ChannelTypeTwilioSms is a ChannelType enum value
 15011  	ChannelTypeTwilioSms = "Twilio-Sms"
 15012  
 15013  	// ChannelTypeKik is a ChannelType enum value
 15014  	ChannelTypeKik = "Kik"
 15015  )
 15016  
 15017  // ChannelType_Values returns all elements of the ChannelType enum
 15018  func ChannelType_Values() []string {
 15019  	return []string{
 15020  		ChannelTypeFacebook,
 15021  		ChannelTypeSlack,
 15022  		ChannelTypeTwilioSms,
 15023  		ChannelTypeKik,
 15024  	}
 15025  }
 15026  
 15027  const (
 15028  	// ContentTypePlainText is a ContentType enum value
 15029  	ContentTypePlainText = "PlainText"
 15030  
 15031  	// ContentTypeSsml is a ContentType enum value
 15032  	ContentTypeSsml = "SSML"
 15033  
 15034  	// ContentTypeCustomPayload is a ContentType enum value
 15035  	ContentTypeCustomPayload = "CustomPayload"
 15036  )
 15037  
 15038  // ContentType_Values returns all elements of the ContentType enum
 15039  func ContentType_Values() []string {
 15040  	return []string{
 15041  		ContentTypePlainText,
 15042  		ContentTypeSsml,
 15043  		ContentTypeCustomPayload,
 15044  	}
 15045  }
 15046  
 15047  const (
 15048  	// DestinationCloudwatchLogs is a Destination enum value
 15049  	DestinationCloudwatchLogs = "CLOUDWATCH_LOGS"
 15050  
 15051  	// DestinationS3 is a Destination enum value
 15052  	DestinationS3 = "S3"
 15053  )
 15054  
 15055  // Destination_Values returns all elements of the Destination enum
 15056  func Destination_Values() []string {
 15057  	return []string{
 15058  		DestinationCloudwatchLogs,
 15059  		DestinationS3,
 15060  	}
 15061  }
 15062  
 15063  const (
 15064  	// ExportStatusInProgress is a ExportStatus enum value
 15065  	ExportStatusInProgress = "IN_PROGRESS"
 15066  
 15067  	// ExportStatusReady is a ExportStatus enum value
 15068  	ExportStatusReady = "READY"
 15069  
 15070  	// ExportStatusFailed is a ExportStatus enum value
 15071  	ExportStatusFailed = "FAILED"
 15072  )
 15073  
 15074  // ExportStatus_Values returns all elements of the ExportStatus enum
 15075  func ExportStatus_Values() []string {
 15076  	return []string{
 15077  		ExportStatusInProgress,
 15078  		ExportStatusReady,
 15079  		ExportStatusFailed,
 15080  	}
 15081  }
 15082  
 15083  const (
 15084  	// ExportTypeAlexaSkillsKit is a ExportType enum value
 15085  	ExportTypeAlexaSkillsKit = "ALEXA_SKILLS_KIT"
 15086  
 15087  	// ExportTypeLex is a ExportType enum value
 15088  	ExportTypeLex = "LEX"
 15089  )
 15090  
 15091  // ExportType_Values returns all elements of the ExportType enum
 15092  func ExportType_Values() []string {
 15093  	return []string{
 15094  		ExportTypeAlexaSkillsKit,
 15095  		ExportTypeLex,
 15096  	}
 15097  }
 15098  
 15099  const (
 15100  	// FulfillmentActivityTypeReturnIntent is a FulfillmentActivityType enum value
 15101  	FulfillmentActivityTypeReturnIntent = "ReturnIntent"
 15102  
 15103  	// FulfillmentActivityTypeCodeHook is a FulfillmentActivityType enum value
 15104  	FulfillmentActivityTypeCodeHook = "CodeHook"
 15105  )
 15106  
 15107  // FulfillmentActivityType_Values returns all elements of the FulfillmentActivityType enum
 15108  func FulfillmentActivityType_Values() []string {
 15109  	return []string{
 15110  		FulfillmentActivityTypeReturnIntent,
 15111  		FulfillmentActivityTypeCodeHook,
 15112  	}
 15113  }
 15114  
 15115  const (
 15116  	// ImportStatusInProgress is a ImportStatus enum value
 15117  	ImportStatusInProgress = "IN_PROGRESS"
 15118  
 15119  	// ImportStatusComplete is a ImportStatus enum value
 15120  	ImportStatusComplete = "COMPLETE"
 15121  
 15122  	// ImportStatusFailed is a ImportStatus enum value
 15123  	ImportStatusFailed = "FAILED"
 15124  )
 15125  
 15126  // ImportStatus_Values returns all elements of the ImportStatus enum
 15127  func ImportStatus_Values() []string {
 15128  	return []string{
 15129  		ImportStatusInProgress,
 15130  		ImportStatusComplete,
 15131  		ImportStatusFailed,
 15132  	}
 15133  }
 15134  
 15135  const (
 15136  	// LocaleDeDe is a Locale enum value
 15137  	LocaleDeDe = "de-DE"
 15138  
 15139  	// LocaleEnAu is a Locale enum value
 15140  	LocaleEnAu = "en-AU"
 15141  
 15142  	// LocaleEnGb is a Locale enum value
 15143  	LocaleEnGb = "en-GB"
 15144  
 15145  	// LocaleEnIn is a Locale enum value
 15146  	LocaleEnIn = "en-IN"
 15147  
 15148  	// LocaleEnUs is a Locale enum value
 15149  	LocaleEnUs = "en-US"
 15150  
 15151  	// LocaleEs419 is a Locale enum value
 15152  	LocaleEs419 = "es-419"
 15153  
 15154  	// LocaleEsEs is a Locale enum value
 15155  	LocaleEsEs = "es-ES"
 15156  
 15157  	// LocaleEsUs is a Locale enum value
 15158  	LocaleEsUs = "es-US"
 15159  
 15160  	// LocaleFrFr is a Locale enum value
 15161  	LocaleFrFr = "fr-FR"
 15162  
 15163  	// LocaleFrCa is a Locale enum value
 15164  	LocaleFrCa = "fr-CA"
 15165  
 15166  	// LocaleItIt is a Locale enum value
 15167  	LocaleItIt = "it-IT"
 15168  
 15169  	// LocaleJaJp is a Locale enum value
 15170  	LocaleJaJp = "ja-JP"
 15171  
 15172  	// LocaleKoKr is a Locale enum value
 15173  	LocaleKoKr = "ko-KR"
 15174  )
 15175  
 15176  // Locale_Values returns all elements of the Locale enum
 15177  func Locale_Values() []string {
 15178  	return []string{
 15179  		LocaleDeDe,
 15180  		LocaleEnAu,
 15181  		LocaleEnGb,
 15182  		LocaleEnIn,
 15183  		LocaleEnUs,
 15184  		LocaleEs419,
 15185  		LocaleEsEs,
 15186  		LocaleEsUs,
 15187  		LocaleFrFr,
 15188  		LocaleFrCa,
 15189  		LocaleItIt,
 15190  		LocaleJaJp,
 15191  		LocaleKoKr,
 15192  	}
 15193  }
 15194  
 15195  const (
 15196  	// LogTypeAudio is a LogType enum value
 15197  	LogTypeAudio = "AUDIO"
 15198  
 15199  	// LogTypeText is a LogType enum value
 15200  	LogTypeText = "TEXT"
 15201  )
 15202  
 15203  // LogType_Values returns all elements of the LogType enum
 15204  func LogType_Values() []string {
 15205  	return []string{
 15206  		LogTypeAudio,
 15207  		LogTypeText,
 15208  	}
 15209  }
 15210  
 15211  const (
 15212  	// MergeStrategyOverwriteLatest is a MergeStrategy enum value
 15213  	MergeStrategyOverwriteLatest = "OVERWRITE_LATEST"
 15214  
 15215  	// MergeStrategyFailOnConflict is a MergeStrategy enum value
 15216  	MergeStrategyFailOnConflict = "FAIL_ON_CONFLICT"
 15217  )
 15218  
 15219  // MergeStrategy_Values returns all elements of the MergeStrategy enum
 15220  func MergeStrategy_Values() []string {
 15221  	return []string{
 15222  		MergeStrategyOverwriteLatest,
 15223  		MergeStrategyFailOnConflict,
 15224  	}
 15225  }
 15226  
 15227  const (
 15228  	// MigrationAlertTypeError is a MigrationAlertType enum value
 15229  	MigrationAlertTypeError = "ERROR"
 15230  
 15231  	// MigrationAlertTypeWarn is a MigrationAlertType enum value
 15232  	MigrationAlertTypeWarn = "WARN"
 15233  )
 15234  
 15235  // MigrationAlertType_Values returns all elements of the MigrationAlertType enum
 15236  func MigrationAlertType_Values() []string {
 15237  	return []string{
 15238  		MigrationAlertTypeError,
 15239  		MigrationAlertTypeWarn,
 15240  	}
 15241  }
 15242  
 15243  const (
 15244  	// MigrationSortAttributeV1BotName is a MigrationSortAttribute enum value
 15245  	MigrationSortAttributeV1BotName = "V1_BOT_NAME"
 15246  
 15247  	// MigrationSortAttributeMigrationDateTime is a MigrationSortAttribute enum value
 15248  	MigrationSortAttributeMigrationDateTime = "MIGRATION_DATE_TIME"
 15249  )
 15250  
 15251  // MigrationSortAttribute_Values returns all elements of the MigrationSortAttribute enum
 15252  func MigrationSortAttribute_Values() []string {
 15253  	return []string{
 15254  		MigrationSortAttributeV1BotName,
 15255  		MigrationSortAttributeMigrationDateTime,
 15256  	}
 15257  }
 15258  
 15259  const (
 15260  	// MigrationStatusInProgress is a MigrationStatus enum value
 15261  	MigrationStatusInProgress = "IN_PROGRESS"
 15262  
 15263  	// MigrationStatusCompleted is a MigrationStatus enum value
 15264  	MigrationStatusCompleted = "COMPLETED"
 15265  
 15266  	// MigrationStatusFailed is a MigrationStatus enum value
 15267  	MigrationStatusFailed = "FAILED"
 15268  )
 15269  
 15270  // MigrationStatus_Values returns all elements of the MigrationStatus enum
 15271  func MigrationStatus_Values() []string {
 15272  	return []string{
 15273  		MigrationStatusInProgress,
 15274  		MigrationStatusCompleted,
 15275  		MigrationStatusFailed,
 15276  	}
 15277  }
 15278  
 15279  const (
 15280  	// MigrationStrategyCreateNew is a MigrationStrategy enum value
 15281  	MigrationStrategyCreateNew = "CREATE_NEW"
 15282  
 15283  	// MigrationStrategyUpdateExisting is a MigrationStrategy enum value
 15284  	MigrationStrategyUpdateExisting = "UPDATE_EXISTING"
 15285  )
 15286  
 15287  // MigrationStrategy_Values returns all elements of the MigrationStrategy enum
 15288  func MigrationStrategy_Values() []string {
 15289  	return []string{
 15290  		MigrationStrategyCreateNew,
 15291  		MigrationStrategyUpdateExisting,
 15292  	}
 15293  }
 15294  
 15295  const (
 15296  	// ObfuscationSettingNone is a ObfuscationSetting enum value
 15297  	ObfuscationSettingNone = "NONE"
 15298  
 15299  	// ObfuscationSettingDefaultObfuscation is a ObfuscationSetting enum value
 15300  	ObfuscationSettingDefaultObfuscation = "DEFAULT_OBFUSCATION"
 15301  )
 15302  
 15303  // ObfuscationSetting_Values returns all elements of the ObfuscationSetting enum
 15304  func ObfuscationSetting_Values() []string {
 15305  	return []string{
 15306  		ObfuscationSettingNone,
 15307  		ObfuscationSettingDefaultObfuscation,
 15308  	}
 15309  }
 15310  
 15311  const (
 15312  	// ProcessBehaviorSave is a ProcessBehavior enum value
 15313  	ProcessBehaviorSave = "SAVE"
 15314  
 15315  	// ProcessBehaviorBuild is a ProcessBehavior enum value
 15316  	ProcessBehaviorBuild = "BUILD"
 15317  )
 15318  
 15319  // ProcessBehavior_Values returns all elements of the ProcessBehavior enum
 15320  func ProcessBehavior_Values() []string {
 15321  	return []string{
 15322  		ProcessBehaviorSave,
 15323  		ProcessBehaviorBuild,
 15324  	}
 15325  }
 15326  
 15327  const (
 15328  	// ReferenceTypeIntent is a ReferenceType enum value
 15329  	ReferenceTypeIntent = "Intent"
 15330  
 15331  	// ReferenceTypeBot is a ReferenceType enum value
 15332  	ReferenceTypeBot = "Bot"
 15333  
 15334  	// ReferenceTypeBotAlias is a ReferenceType enum value
 15335  	ReferenceTypeBotAlias = "BotAlias"
 15336  
 15337  	// ReferenceTypeBotChannel is a ReferenceType enum value
 15338  	ReferenceTypeBotChannel = "BotChannel"
 15339  )
 15340  
 15341  // ReferenceType_Values returns all elements of the ReferenceType enum
 15342  func ReferenceType_Values() []string {
 15343  	return []string{
 15344  		ReferenceTypeIntent,
 15345  		ReferenceTypeBot,
 15346  		ReferenceTypeBotAlias,
 15347  		ReferenceTypeBotChannel,
 15348  	}
 15349  }
 15350  
 15351  const (
 15352  	// ResourceTypeBot is a ResourceType enum value
 15353  	ResourceTypeBot = "BOT"
 15354  
 15355  	// ResourceTypeIntent is a ResourceType enum value
 15356  	ResourceTypeIntent = "INTENT"
 15357  
 15358  	// ResourceTypeSlotType is a ResourceType enum value
 15359  	ResourceTypeSlotType = "SLOT_TYPE"
 15360  )
 15361  
 15362  // ResourceType_Values returns all elements of the ResourceType enum
 15363  func ResourceType_Values() []string {
 15364  	return []string{
 15365  		ResourceTypeBot,
 15366  		ResourceTypeIntent,
 15367  		ResourceTypeSlotType,
 15368  	}
 15369  }
 15370  
 15371  const (
 15372  	// SlotConstraintRequired is a SlotConstraint enum value
 15373  	SlotConstraintRequired = "Required"
 15374  
 15375  	// SlotConstraintOptional is a SlotConstraint enum value
 15376  	SlotConstraintOptional = "Optional"
 15377  )
 15378  
 15379  // SlotConstraint_Values returns all elements of the SlotConstraint enum
 15380  func SlotConstraint_Values() []string {
 15381  	return []string{
 15382  		SlotConstraintRequired,
 15383  		SlotConstraintOptional,
 15384  	}
 15385  }
 15386  
 15387  const (
 15388  	// SlotValueSelectionStrategyOriginalValue is a SlotValueSelectionStrategy enum value
 15389  	SlotValueSelectionStrategyOriginalValue = "ORIGINAL_VALUE"
 15390  
 15391  	// SlotValueSelectionStrategyTopResolution is a SlotValueSelectionStrategy enum value
 15392  	SlotValueSelectionStrategyTopResolution = "TOP_RESOLUTION"
 15393  )
 15394  
 15395  // SlotValueSelectionStrategy_Values returns all elements of the SlotValueSelectionStrategy enum
 15396  func SlotValueSelectionStrategy_Values() []string {
 15397  	return []string{
 15398  		SlotValueSelectionStrategyOriginalValue,
 15399  		SlotValueSelectionStrategyTopResolution,
 15400  	}
 15401  }
 15402  
 15403  const (
 15404  	// SortOrderAscending is a SortOrder enum value
 15405  	SortOrderAscending = "ASCENDING"
 15406  
 15407  	// SortOrderDescending is a SortOrder enum value
 15408  	SortOrderDescending = "DESCENDING"
 15409  )
 15410  
 15411  // SortOrder_Values returns all elements of the SortOrder enum
 15412  func SortOrder_Values() []string {
 15413  	return []string{
 15414  		SortOrderAscending,
 15415  		SortOrderDescending,
 15416  	}
 15417  }
 15418  
 15419  const (
 15420  	// StatusBuilding is a Status enum value
 15421  	StatusBuilding = "BUILDING"
 15422  
 15423  	// StatusReady is a Status enum value
 15424  	StatusReady = "READY"
 15425  
 15426  	// StatusReadyBasicTesting is a Status enum value
 15427  	StatusReadyBasicTesting = "READY_BASIC_TESTING"
 15428  
 15429  	// StatusFailed is a Status enum value
 15430  	StatusFailed = "FAILED"
 15431  
 15432  	// StatusNotBuilt is a Status enum value
 15433  	StatusNotBuilt = "NOT_BUILT"
 15434  )
 15435  
 15436  // Status_Values returns all elements of the Status enum
 15437  func Status_Values() []string {
 15438  	return []string{
 15439  		StatusBuilding,
 15440  		StatusReady,
 15441  		StatusReadyBasicTesting,
 15442  		StatusFailed,
 15443  		StatusNotBuilt,
 15444  	}
 15445  }
 15446  
 15447  const (
 15448  	// StatusTypeDetected is a StatusType enum value
 15449  	StatusTypeDetected = "Detected"
 15450  
 15451  	// StatusTypeMissed is a StatusType enum value
 15452  	StatusTypeMissed = "Missed"
 15453  )
 15454  
 15455  // StatusType_Values returns all elements of the StatusType enum
 15456  func StatusType_Values() []string {
 15457  	return []string{
 15458  		StatusTypeDetected,
 15459  		StatusTypeMissed,
 15460  	}
 15461  }