404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 91.108.106.254
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

name : api.go
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package qconnect

import (
	"fmt"
	"time"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/restjson"
)

const opCreateAssistant = "CreateAssistant"

// CreateAssistantRequest generates a "aws/request.Request" representing the
// client's request for the CreateAssistant operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAssistant for more information on using the CreateAssistant
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAssistantRequest method.
//	req, resp := client.CreateAssistantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateAssistant
func (c *QConnect) CreateAssistantRequest(input *CreateAssistantInput) (req *request.Request, output *CreateAssistantOutput) {
	op := &request.Operation{
		Name:       opCreateAssistant,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants",
	}

	if input == nil {
		input = &CreateAssistantInput{}
	}

	output = &CreateAssistantOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAssistant API operation for Amazon Q Connect.
//
// Creates an Amazon Q in Connect assistant.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateAssistant for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateAssistant
func (c *QConnect) CreateAssistant(input *CreateAssistantInput) (*CreateAssistantOutput, error) {
	req, out := c.CreateAssistantRequest(input)
	return out, req.Send()
}

// CreateAssistantWithContext is the same as CreateAssistant with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAssistant for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateAssistantWithContext(ctx aws.Context, input *CreateAssistantInput, opts ...request.Option) (*CreateAssistantOutput, error) {
	req, out := c.CreateAssistantRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAssistantAssociation = "CreateAssistantAssociation"

// CreateAssistantAssociationRequest generates a "aws/request.Request" representing the
// client's request for the CreateAssistantAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAssistantAssociation for more information on using the CreateAssistantAssociation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAssistantAssociationRequest method.
//	req, resp := client.CreateAssistantAssociationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateAssistantAssociation
func (c *QConnect) CreateAssistantAssociationRequest(input *CreateAssistantAssociationInput) (req *request.Request, output *CreateAssistantAssociationOutput) {
	op := &request.Operation{
		Name:       opCreateAssistantAssociation,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants/{assistantId}/associations",
	}

	if input == nil {
		input = &CreateAssistantAssociationInput{}
	}

	output = &CreateAssistantAssociationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAssistantAssociation API operation for Amazon Q Connect.
//
// Creates an association between an Amazon Q in Connect assistant and another
// resource. Currently, the only supported association is with a knowledge base.
// An assistant can have only a single association.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateAssistantAssociation for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateAssistantAssociation
func (c *QConnect) CreateAssistantAssociation(input *CreateAssistantAssociationInput) (*CreateAssistantAssociationOutput, error) {
	req, out := c.CreateAssistantAssociationRequest(input)
	return out, req.Send()
}

// CreateAssistantAssociationWithContext is the same as CreateAssistantAssociation with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAssistantAssociation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateAssistantAssociationWithContext(ctx aws.Context, input *CreateAssistantAssociationInput, opts ...request.Option) (*CreateAssistantAssociationOutput, error) {
	req, out := c.CreateAssistantAssociationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateContent = "CreateContent"

// CreateContentRequest generates a "aws/request.Request" representing the
// client's request for the CreateContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateContent for more information on using the CreateContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateContentRequest method.
//	req, resp := client.CreateContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateContent
func (c *QConnect) CreateContentRequest(input *CreateContentInput) (req *request.Request, output *CreateContentOutput) {
	op := &request.Operation{
		Name:       opCreateContent,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents",
	}

	if input == nil {
		input = &CreateContentInput{}
	}

	output = &CreateContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateContent API operation for Amazon Q Connect.
//
// Creates Amazon Q content. Before to calling this API, use StartContentUpload
// (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_StartContentUpload.html)
// to upload an asset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateContent for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateContent
func (c *QConnect) CreateContent(input *CreateContentInput) (*CreateContentOutput, error) {
	req, out := c.CreateContentRequest(input)
	return out, req.Send()
}

// CreateContentWithContext is the same as CreateContent with the addition of
// the ability to pass a context and additional request options.
//
// See CreateContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateContentWithContext(ctx aws.Context, input *CreateContentInput, opts ...request.Option) (*CreateContentOutput, error) {
	req, out := c.CreateContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateKnowledgeBase = "CreateKnowledgeBase"

// CreateKnowledgeBaseRequest generates a "aws/request.Request" representing the
// client's request for the CreateKnowledgeBase operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateKnowledgeBase for more information on using the CreateKnowledgeBase
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateKnowledgeBaseRequest method.
//	req, resp := client.CreateKnowledgeBaseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateKnowledgeBase
func (c *QConnect) CreateKnowledgeBaseRequest(input *CreateKnowledgeBaseInput) (req *request.Request, output *CreateKnowledgeBaseOutput) {
	op := &request.Operation{
		Name:       opCreateKnowledgeBase,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases",
	}

	if input == nil {
		input = &CreateKnowledgeBaseInput{}
	}

	output = &CreateKnowledgeBaseOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateKnowledgeBase API operation for Amazon Q Connect.
//
// Creates a knowledge base.
//
// When using this API, you cannot reuse Amazon AppIntegrations (https://docs.aws.amazon.com/appintegrations/latest/APIReference/Welcome.html)
// DataIntegrations with external knowledge bases such as Salesforce and ServiceNow.
// If you do, you'll get an InvalidRequestException error.
//
// For example, you're programmatically managing your external knowledge base,
// and you want to add or remove one of the fields that is being ingested from
// Salesforce. Do the following:
//
// Call DeleteKnowledgeBase (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_DeleteKnowledgeBase.html).
//
// Call DeleteDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_DeleteDataIntegration.html).
//
// Call CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// to recreate the DataIntegration or a create different one.
//
// Call CreateKnowledgeBase.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateKnowledgeBase for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateKnowledgeBase
func (c *QConnect) CreateKnowledgeBase(input *CreateKnowledgeBaseInput) (*CreateKnowledgeBaseOutput, error) {
	req, out := c.CreateKnowledgeBaseRequest(input)
	return out, req.Send()
}

// CreateKnowledgeBaseWithContext is the same as CreateKnowledgeBase with the addition of
// the ability to pass a context and additional request options.
//
// See CreateKnowledgeBase for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateKnowledgeBaseWithContext(ctx aws.Context, input *CreateKnowledgeBaseInput, opts ...request.Option) (*CreateKnowledgeBaseOutput, error) {
	req, out := c.CreateKnowledgeBaseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateQuickResponse = "CreateQuickResponse"

// CreateQuickResponseRequest generates a "aws/request.Request" representing the
// client's request for the CreateQuickResponse operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateQuickResponse for more information on using the CreateQuickResponse
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateQuickResponseRequest method.
//	req, resp := client.CreateQuickResponseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateQuickResponse
func (c *QConnect) CreateQuickResponseRequest(input *CreateQuickResponseInput) (req *request.Request, output *CreateQuickResponseOutput) {
	op := &request.Operation{
		Name:       opCreateQuickResponse,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/quickResponses",
	}

	if input == nil {
		input = &CreateQuickResponseInput{}
	}

	output = &CreateQuickResponseOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateQuickResponse API operation for Amazon Q Connect.
//
// Creates an Amazon Q quick response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateQuickResponse for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateQuickResponse
func (c *QConnect) CreateQuickResponse(input *CreateQuickResponseInput) (*CreateQuickResponseOutput, error) {
	req, out := c.CreateQuickResponseRequest(input)
	return out, req.Send()
}

// CreateQuickResponseWithContext is the same as CreateQuickResponse with the addition of
// the ability to pass a context and additional request options.
//
// See CreateQuickResponse for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateQuickResponseWithContext(ctx aws.Context, input *CreateQuickResponseInput, opts ...request.Option) (*CreateQuickResponseOutput, error) {
	req, out := c.CreateQuickResponseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSession = "CreateSession"

// CreateSessionRequest generates a "aws/request.Request" representing the
// client's request for the CreateSession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateSession for more information on using the CreateSession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateSessionRequest method.
//	req, resp := client.CreateSessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateSession
func (c *QConnect) CreateSessionRequest(input *CreateSessionInput) (req *request.Request, output *CreateSessionOutput) {
	op := &request.Operation{
		Name:       opCreateSession,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants/{assistantId}/sessions",
	}

	if input == nil {
		input = &CreateSessionInput{}
	}

	output = &CreateSessionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateSession API operation for Amazon Q Connect.
//
// Creates a session. A session is a contextual container used for generating
// recommendations. Amazon Connect creates a new Amazon Q session for each contact
// on which Amazon Q is enabled.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation CreateSession for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/CreateSession
func (c *QConnect) CreateSession(input *CreateSessionInput) (*CreateSessionOutput, error) {
	req, out := c.CreateSessionRequest(input)
	return out, req.Send()
}

// CreateSessionWithContext is the same as CreateSession with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) CreateSessionWithContext(ctx aws.Context, input *CreateSessionInput, opts ...request.Option) (*CreateSessionOutput, error) {
	req, out := c.CreateSessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAssistant = "DeleteAssistant"

// DeleteAssistantRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAssistant operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAssistant for more information on using the DeleteAssistant
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAssistantRequest method.
//	req, resp := client.DeleteAssistantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteAssistant
func (c *QConnect) DeleteAssistantRequest(input *DeleteAssistantInput) (req *request.Request, output *DeleteAssistantOutput) {
	op := &request.Operation{
		Name:       opDeleteAssistant,
		HTTPMethod: "DELETE",
		HTTPPath:   "/assistants/{assistantId}",
	}

	if input == nil {
		input = &DeleteAssistantInput{}
	}

	output = &DeleteAssistantOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAssistant API operation for Amazon Q Connect.
//
// Deletes an assistant.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteAssistant for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteAssistant
func (c *QConnect) DeleteAssistant(input *DeleteAssistantInput) (*DeleteAssistantOutput, error) {
	req, out := c.DeleteAssistantRequest(input)
	return out, req.Send()
}

// DeleteAssistantWithContext is the same as DeleteAssistant with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAssistant for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteAssistantWithContext(ctx aws.Context, input *DeleteAssistantInput, opts ...request.Option) (*DeleteAssistantOutput, error) {
	req, out := c.DeleteAssistantRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAssistantAssociation = "DeleteAssistantAssociation"

// DeleteAssistantAssociationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAssistantAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAssistantAssociation for more information on using the DeleteAssistantAssociation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAssistantAssociationRequest method.
//	req, resp := client.DeleteAssistantAssociationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteAssistantAssociation
func (c *QConnect) DeleteAssistantAssociationRequest(input *DeleteAssistantAssociationInput) (req *request.Request, output *DeleteAssistantAssociationOutput) {
	op := &request.Operation{
		Name:       opDeleteAssistantAssociation,
		HTTPMethod: "DELETE",
		HTTPPath:   "/assistants/{assistantId}/associations/{assistantAssociationId}",
	}

	if input == nil {
		input = &DeleteAssistantAssociationInput{}
	}

	output = &DeleteAssistantAssociationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAssistantAssociation API operation for Amazon Q Connect.
//
// Deletes an assistant association.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteAssistantAssociation for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteAssistantAssociation
func (c *QConnect) DeleteAssistantAssociation(input *DeleteAssistantAssociationInput) (*DeleteAssistantAssociationOutput, error) {
	req, out := c.DeleteAssistantAssociationRequest(input)
	return out, req.Send()
}

// DeleteAssistantAssociationWithContext is the same as DeleteAssistantAssociation with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAssistantAssociation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteAssistantAssociationWithContext(ctx aws.Context, input *DeleteAssistantAssociationInput, opts ...request.Option) (*DeleteAssistantAssociationOutput, error) {
	req, out := c.DeleteAssistantAssociationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteContent = "DeleteContent"

// DeleteContentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteContent for more information on using the DeleteContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteContentRequest method.
//	req, resp := client.DeleteContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteContent
func (c *QConnect) DeleteContentRequest(input *DeleteContentInput) (req *request.Request, output *DeleteContentOutput) {
	op := &request.Operation{
		Name:       opDeleteContent,
		HTTPMethod: "DELETE",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
	}

	if input == nil {
		input = &DeleteContentInput{}
	}

	output = &DeleteContentOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteContent API operation for Amazon Q Connect.
//
// Deletes the content.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteContent for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteContent
func (c *QConnect) DeleteContent(input *DeleteContentInput) (*DeleteContentOutput, error) {
	req, out := c.DeleteContentRequest(input)
	return out, req.Send()
}

// DeleteContentWithContext is the same as DeleteContent with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteContentWithContext(ctx aws.Context, input *DeleteContentInput, opts ...request.Option) (*DeleteContentOutput, error) {
	req, out := c.DeleteContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteImportJob = "DeleteImportJob"

// DeleteImportJobRequest generates a "aws/request.Request" representing the
// client's request for the DeleteImportJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteImportJob for more information on using the DeleteImportJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteImportJobRequest method.
//	req, resp := client.DeleteImportJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteImportJob
func (c *QConnect) DeleteImportJobRequest(input *DeleteImportJobInput) (req *request.Request, output *DeleteImportJobOutput) {
	op := &request.Operation{
		Name:       opDeleteImportJob,
		HTTPMethod: "DELETE",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}",
	}

	if input == nil {
		input = &DeleteImportJobInput{}
	}

	output = &DeleteImportJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteImportJob API operation for Amazon Q Connect.
//
// Deletes the quick response import job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteImportJob for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteImportJob
func (c *QConnect) DeleteImportJob(input *DeleteImportJobInput) (*DeleteImportJobOutput, error) {
	req, out := c.DeleteImportJobRequest(input)
	return out, req.Send()
}

// DeleteImportJobWithContext is the same as DeleteImportJob with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteImportJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteImportJobWithContext(ctx aws.Context, input *DeleteImportJobInput, opts ...request.Option) (*DeleteImportJobOutput, error) {
	req, out := c.DeleteImportJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteKnowledgeBase = "DeleteKnowledgeBase"

// DeleteKnowledgeBaseRequest generates a "aws/request.Request" representing the
// client's request for the DeleteKnowledgeBase operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteKnowledgeBase for more information on using the DeleteKnowledgeBase
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteKnowledgeBaseRequest method.
//	req, resp := client.DeleteKnowledgeBaseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteKnowledgeBase
func (c *QConnect) DeleteKnowledgeBaseRequest(input *DeleteKnowledgeBaseInput) (req *request.Request, output *DeleteKnowledgeBaseOutput) {
	op := &request.Operation{
		Name:       opDeleteKnowledgeBase,
		HTTPMethod: "DELETE",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}",
	}

	if input == nil {
		input = &DeleteKnowledgeBaseInput{}
	}

	output = &DeleteKnowledgeBaseOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteKnowledgeBase API operation for Amazon Q Connect.
//
// Deletes the knowledge base.
//
// When you use this API to delete an external knowledge base such as Salesforce
// or ServiceNow, you must also delete the Amazon AppIntegrations (https://docs.aws.amazon.com/appintegrations/latest/APIReference/Welcome.html)
// DataIntegration. This is because you can't reuse the DataIntegration after
// it's been associated with an external knowledge base. However, you can delete
// and recreate it. See DeleteDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_DeleteDataIntegration.html)
// and CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// in the Amazon AppIntegrations API Reference.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteKnowledgeBase for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteKnowledgeBase
func (c *QConnect) DeleteKnowledgeBase(input *DeleteKnowledgeBaseInput) (*DeleteKnowledgeBaseOutput, error) {
	req, out := c.DeleteKnowledgeBaseRequest(input)
	return out, req.Send()
}

// DeleteKnowledgeBaseWithContext is the same as DeleteKnowledgeBase with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteKnowledgeBase for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteKnowledgeBaseWithContext(ctx aws.Context, input *DeleteKnowledgeBaseInput, opts ...request.Option) (*DeleteKnowledgeBaseOutput, error) {
	req, out := c.DeleteKnowledgeBaseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteQuickResponse = "DeleteQuickResponse"

// DeleteQuickResponseRequest generates a "aws/request.Request" representing the
// client's request for the DeleteQuickResponse operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteQuickResponse for more information on using the DeleteQuickResponse
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteQuickResponseRequest method.
//	req, resp := client.DeleteQuickResponseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteQuickResponse
func (c *QConnect) DeleteQuickResponseRequest(input *DeleteQuickResponseInput) (req *request.Request, output *DeleteQuickResponseOutput) {
	op := &request.Operation{
		Name:       opDeleteQuickResponse,
		HTTPMethod: "DELETE",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
	}

	if input == nil {
		input = &DeleteQuickResponseInput{}
	}

	output = &DeleteQuickResponseOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteQuickResponse API operation for Amazon Q Connect.
//
// Deletes a quick response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation DeleteQuickResponse for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/DeleteQuickResponse
func (c *QConnect) DeleteQuickResponse(input *DeleteQuickResponseInput) (*DeleteQuickResponseOutput, error) {
	req, out := c.DeleteQuickResponseRequest(input)
	return out, req.Send()
}

// DeleteQuickResponseWithContext is the same as DeleteQuickResponse with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteQuickResponse for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) DeleteQuickResponseWithContext(ctx aws.Context, input *DeleteQuickResponseInput, opts ...request.Option) (*DeleteQuickResponseOutput, error) {
	req, out := c.DeleteQuickResponseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAssistant = "GetAssistant"

// GetAssistantRequest generates a "aws/request.Request" representing the
// client's request for the GetAssistant operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAssistant for more information on using the GetAssistant
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAssistantRequest method.
//	req, resp := client.GetAssistantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetAssistant
func (c *QConnect) GetAssistantRequest(input *GetAssistantInput) (req *request.Request, output *GetAssistantOutput) {
	op := &request.Operation{
		Name:       opGetAssistant,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants/{assistantId}",
	}

	if input == nil {
		input = &GetAssistantInput{}
	}

	output = &GetAssistantOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAssistant API operation for Amazon Q Connect.
//
// Retrieves information about an assistant.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetAssistant for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetAssistant
func (c *QConnect) GetAssistant(input *GetAssistantInput) (*GetAssistantOutput, error) {
	req, out := c.GetAssistantRequest(input)
	return out, req.Send()
}

// GetAssistantWithContext is the same as GetAssistant with the addition of
// the ability to pass a context and additional request options.
//
// See GetAssistant for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetAssistantWithContext(ctx aws.Context, input *GetAssistantInput, opts ...request.Option) (*GetAssistantOutput, error) {
	req, out := c.GetAssistantRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAssistantAssociation = "GetAssistantAssociation"

// GetAssistantAssociationRequest generates a "aws/request.Request" representing the
// client's request for the GetAssistantAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAssistantAssociation for more information on using the GetAssistantAssociation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAssistantAssociationRequest method.
//	req, resp := client.GetAssistantAssociationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetAssistantAssociation
func (c *QConnect) GetAssistantAssociationRequest(input *GetAssistantAssociationInput) (req *request.Request, output *GetAssistantAssociationOutput) {
	op := &request.Operation{
		Name:       opGetAssistantAssociation,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants/{assistantId}/associations/{assistantAssociationId}",
	}

	if input == nil {
		input = &GetAssistantAssociationInput{}
	}

	output = &GetAssistantAssociationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAssistantAssociation API operation for Amazon Q Connect.
//
// Retrieves information about an assistant association.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetAssistantAssociation for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetAssistantAssociation
func (c *QConnect) GetAssistantAssociation(input *GetAssistantAssociationInput) (*GetAssistantAssociationOutput, error) {
	req, out := c.GetAssistantAssociationRequest(input)
	return out, req.Send()
}

// GetAssistantAssociationWithContext is the same as GetAssistantAssociation with the addition of
// the ability to pass a context and additional request options.
//
// See GetAssistantAssociation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetAssistantAssociationWithContext(ctx aws.Context, input *GetAssistantAssociationInput, opts ...request.Option) (*GetAssistantAssociationOutput, error) {
	req, out := c.GetAssistantAssociationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetContent = "GetContent"

// GetContentRequest generates a "aws/request.Request" representing the
// client's request for the GetContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetContent for more information on using the GetContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetContentRequest method.
//	req, resp := client.GetContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetContent
func (c *QConnect) GetContentRequest(input *GetContentInput) (req *request.Request, output *GetContentOutput) {
	op := &request.Operation{
		Name:       opGetContent,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
	}

	if input == nil {
		input = &GetContentInput{}
	}

	output = &GetContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetContent API operation for Amazon Q Connect.
//
// Retrieves content, including a pre-signed URL to download the content.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetContent for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetContent
func (c *QConnect) GetContent(input *GetContentInput) (*GetContentOutput, error) {
	req, out := c.GetContentRequest(input)
	return out, req.Send()
}

// GetContentWithContext is the same as GetContent with the addition of
// the ability to pass a context and additional request options.
//
// See GetContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetContentWithContext(ctx aws.Context, input *GetContentInput, opts ...request.Option) (*GetContentOutput, error) {
	req, out := c.GetContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetContentSummary = "GetContentSummary"

// GetContentSummaryRequest generates a "aws/request.Request" representing the
// client's request for the GetContentSummary operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetContentSummary for more information on using the GetContentSummary
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetContentSummaryRequest method.
//	req, resp := client.GetContentSummaryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetContentSummary
func (c *QConnect) GetContentSummaryRequest(input *GetContentSummaryInput) (req *request.Request, output *GetContentSummaryOutput) {
	op := &request.Operation{
		Name:       opGetContentSummary,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}/summary",
	}

	if input == nil {
		input = &GetContentSummaryInput{}
	}

	output = &GetContentSummaryOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetContentSummary API operation for Amazon Q Connect.
//
// Retrieves summary information about the content.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetContentSummary for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetContentSummary
func (c *QConnect) GetContentSummary(input *GetContentSummaryInput) (*GetContentSummaryOutput, error) {
	req, out := c.GetContentSummaryRequest(input)
	return out, req.Send()
}

// GetContentSummaryWithContext is the same as GetContentSummary with the addition of
// the ability to pass a context and additional request options.
//
// See GetContentSummary for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetContentSummaryWithContext(ctx aws.Context, input *GetContentSummaryInput, opts ...request.Option) (*GetContentSummaryOutput, error) {
	req, out := c.GetContentSummaryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetImportJob = "GetImportJob"

// GetImportJobRequest generates a "aws/request.Request" representing the
// client's request for the GetImportJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetImportJob for more information on using the GetImportJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetImportJobRequest method.
//	req, resp := client.GetImportJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetImportJob
func (c *QConnect) GetImportJobRequest(input *GetImportJobInput) (req *request.Request, output *GetImportJobOutput) {
	op := &request.Operation{
		Name:       opGetImportJob,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}",
	}

	if input == nil {
		input = &GetImportJobInput{}
	}

	output = &GetImportJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetImportJob API operation for Amazon Q Connect.
//
// Retrieves the started import job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetImportJob for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetImportJob
func (c *QConnect) GetImportJob(input *GetImportJobInput) (*GetImportJobOutput, error) {
	req, out := c.GetImportJobRequest(input)
	return out, req.Send()
}

// GetImportJobWithContext is the same as GetImportJob with the addition of
// the ability to pass a context and additional request options.
//
// See GetImportJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetImportJobWithContext(ctx aws.Context, input *GetImportJobInput, opts ...request.Option) (*GetImportJobOutput, error) {
	req, out := c.GetImportJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetKnowledgeBase = "GetKnowledgeBase"

// GetKnowledgeBaseRequest generates a "aws/request.Request" representing the
// client's request for the GetKnowledgeBase operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetKnowledgeBase for more information on using the GetKnowledgeBase
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetKnowledgeBaseRequest method.
//	req, resp := client.GetKnowledgeBaseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetKnowledgeBase
func (c *QConnect) GetKnowledgeBaseRequest(input *GetKnowledgeBaseInput) (req *request.Request, output *GetKnowledgeBaseOutput) {
	op := &request.Operation{
		Name:       opGetKnowledgeBase,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}",
	}

	if input == nil {
		input = &GetKnowledgeBaseInput{}
	}

	output = &GetKnowledgeBaseOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetKnowledgeBase API operation for Amazon Q Connect.
//
// Retrieves information about the knowledge base.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetKnowledgeBase for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetKnowledgeBase
func (c *QConnect) GetKnowledgeBase(input *GetKnowledgeBaseInput) (*GetKnowledgeBaseOutput, error) {
	req, out := c.GetKnowledgeBaseRequest(input)
	return out, req.Send()
}

// GetKnowledgeBaseWithContext is the same as GetKnowledgeBase with the addition of
// the ability to pass a context and additional request options.
//
// See GetKnowledgeBase for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetKnowledgeBaseWithContext(ctx aws.Context, input *GetKnowledgeBaseInput, opts ...request.Option) (*GetKnowledgeBaseOutput, error) {
	req, out := c.GetKnowledgeBaseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetQuickResponse = "GetQuickResponse"

// GetQuickResponseRequest generates a "aws/request.Request" representing the
// client's request for the GetQuickResponse operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetQuickResponse for more information on using the GetQuickResponse
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetQuickResponseRequest method.
//	req, resp := client.GetQuickResponseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetQuickResponse
func (c *QConnect) GetQuickResponseRequest(input *GetQuickResponseInput) (req *request.Request, output *GetQuickResponseOutput) {
	op := &request.Operation{
		Name:       opGetQuickResponse,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
	}

	if input == nil {
		input = &GetQuickResponseInput{}
	}

	output = &GetQuickResponseOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetQuickResponse API operation for Amazon Q Connect.
//
// Retrieves the quick response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetQuickResponse for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetQuickResponse
func (c *QConnect) GetQuickResponse(input *GetQuickResponseInput) (*GetQuickResponseOutput, error) {
	req, out := c.GetQuickResponseRequest(input)
	return out, req.Send()
}

// GetQuickResponseWithContext is the same as GetQuickResponse with the addition of
// the ability to pass a context and additional request options.
//
// See GetQuickResponse for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetQuickResponseWithContext(ctx aws.Context, input *GetQuickResponseInput, opts ...request.Option) (*GetQuickResponseOutput, error) {
	req, out := c.GetQuickResponseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetRecommendations = "GetRecommendations"

// GetRecommendationsRequest generates a "aws/request.Request" representing the
// client's request for the GetRecommendations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetRecommendations for more information on using the GetRecommendations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetRecommendationsRequest method.
//	req, resp := client.GetRecommendationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetRecommendations
//
// Deprecated: GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) GetRecommendationsRequest(input *GetRecommendationsInput) (req *request.Request, output *GetRecommendationsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetRecommendations, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetRecommendations,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants/{assistantId}/sessions/{sessionId}/recommendations",
	}

	if input == nil {
		input = &GetRecommendationsInput{}
	}

	output = &GetRecommendationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetRecommendations API operation for Amazon Q Connect.
//
// Retrieves recommendations for the specified session. To avoid retrieving
// the same recommendations in subsequent calls, use NotifyRecommendationsReceived
// (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_NotifyRecommendationsReceived.html).
// This API supports long-polling behavior with the waitTimeSeconds parameter.
// Short poll is the default behavior and only returns recommendations already
// available. To perform a manual query against an assistant, use QueryAssistant
// (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_QueryAssistant.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetRecommendations for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetRecommendations
//
// Deprecated: GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) GetRecommendations(input *GetRecommendationsInput) (*GetRecommendationsOutput, error) {
	req, out := c.GetRecommendationsRequest(input)
	return out, req.Send()
}

// GetRecommendationsWithContext is the same as GetRecommendations with the addition of
// the ability to pass a context and additional request options.
//
// See GetRecommendations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) GetRecommendationsWithContext(ctx aws.Context, input *GetRecommendationsInput, opts ...request.Option) (*GetRecommendationsOutput, error) {
	req, out := c.GetRecommendationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSession = "GetSession"

// GetSessionRequest generates a "aws/request.Request" representing the
// client's request for the GetSession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSession for more information on using the GetSession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSessionRequest method.
//	req, resp := client.GetSessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetSession
func (c *QConnect) GetSessionRequest(input *GetSessionInput) (req *request.Request, output *GetSessionOutput) {
	op := &request.Operation{
		Name:       opGetSession,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants/{assistantId}/sessions/{sessionId}",
	}

	if input == nil {
		input = &GetSessionInput{}
	}

	output = &GetSessionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSession API operation for Amazon Q Connect.
//
// Retrieves information for a specified session.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation GetSession for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/GetSession
func (c *QConnect) GetSession(input *GetSessionInput) (*GetSessionOutput, error) {
	req, out := c.GetSessionRequest(input)
	return out, req.Send()
}

// GetSessionWithContext is the same as GetSession with the addition of
// the ability to pass a context and additional request options.
//
// See GetSession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) GetSessionWithContext(ctx aws.Context, input *GetSessionInput, opts ...request.Option) (*GetSessionOutput, error) {
	req, out := c.GetSessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListAssistantAssociations = "ListAssistantAssociations"

// ListAssistantAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the ListAssistantAssociations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAssistantAssociations for more information on using the ListAssistantAssociations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAssistantAssociationsRequest method.
//	req, resp := client.ListAssistantAssociationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListAssistantAssociations
func (c *QConnect) ListAssistantAssociationsRequest(input *ListAssistantAssociationsInput) (req *request.Request, output *ListAssistantAssociationsOutput) {
	op := &request.Operation{
		Name:       opListAssistantAssociations,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants/{assistantId}/associations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAssistantAssociationsInput{}
	}

	output = &ListAssistantAssociationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAssistantAssociations API operation for Amazon Q Connect.
//
// Lists information about assistant associations.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListAssistantAssociations for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListAssistantAssociations
func (c *QConnect) ListAssistantAssociations(input *ListAssistantAssociationsInput) (*ListAssistantAssociationsOutput, error) {
	req, out := c.ListAssistantAssociationsRequest(input)
	return out, req.Send()
}

// ListAssistantAssociationsWithContext is the same as ListAssistantAssociations with the addition of
// the ability to pass a context and additional request options.
//
// See ListAssistantAssociations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListAssistantAssociationsWithContext(ctx aws.Context, input *ListAssistantAssociationsInput, opts ...request.Option) (*ListAssistantAssociationsOutput, error) {
	req, out := c.ListAssistantAssociationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAssistantAssociationsPages iterates over the pages of a ListAssistantAssociations operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAssistantAssociations method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAssistantAssociations operation.
//	pageNum := 0
//	err := client.ListAssistantAssociationsPages(params,
//	    func(page *qconnect.ListAssistantAssociationsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListAssistantAssociationsPages(input *ListAssistantAssociationsInput, fn func(*ListAssistantAssociationsOutput, bool) bool) error {
	return c.ListAssistantAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAssistantAssociationsPagesWithContext same as ListAssistantAssociationsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListAssistantAssociationsPagesWithContext(ctx aws.Context, input *ListAssistantAssociationsInput, fn func(*ListAssistantAssociationsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAssistantAssociationsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAssistantAssociationsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAssistantAssociationsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAssistants = "ListAssistants"

// ListAssistantsRequest generates a "aws/request.Request" representing the
// client's request for the ListAssistants operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAssistants for more information on using the ListAssistants
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAssistantsRequest method.
//	req, resp := client.ListAssistantsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListAssistants
func (c *QConnect) ListAssistantsRequest(input *ListAssistantsInput) (req *request.Request, output *ListAssistantsOutput) {
	op := &request.Operation{
		Name:       opListAssistants,
		HTTPMethod: "GET",
		HTTPPath:   "/assistants",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAssistantsInput{}
	}

	output = &ListAssistantsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAssistants API operation for Amazon Q Connect.
//
// Lists information about assistants.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListAssistants for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListAssistants
func (c *QConnect) ListAssistants(input *ListAssistantsInput) (*ListAssistantsOutput, error) {
	req, out := c.ListAssistantsRequest(input)
	return out, req.Send()
}

// ListAssistantsWithContext is the same as ListAssistants with the addition of
// the ability to pass a context and additional request options.
//
// See ListAssistants for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListAssistantsWithContext(ctx aws.Context, input *ListAssistantsInput, opts ...request.Option) (*ListAssistantsOutput, error) {
	req, out := c.ListAssistantsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAssistantsPages iterates over the pages of a ListAssistants operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAssistants method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAssistants operation.
//	pageNum := 0
//	err := client.ListAssistantsPages(params,
//	    func(page *qconnect.ListAssistantsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListAssistantsPages(input *ListAssistantsInput, fn func(*ListAssistantsOutput, bool) bool) error {
	return c.ListAssistantsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAssistantsPagesWithContext same as ListAssistantsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListAssistantsPagesWithContext(ctx aws.Context, input *ListAssistantsInput, fn func(*ListAssistantsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAssistantsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAssistantsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAssistantsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListContents = "ListContents"

// ListContentsRequest generates a "aws/request.Request" representing the
// client's request for the ListContents operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListContents for more information on using the ListContents
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListContentsRequest method.
//	req, resp := client.ListContentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListContents
func (c *QConnect) ListContentsRequest(input *ListContentsInput) (req *request.Request, output *ListContentsOutput) {
	op := &request.Operation{
		Name:       opListContents,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListContentsInput{}
	}

	output = &ListContentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListContents API operation for Amazon Q Connect.
//
// Lists the content.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListContents for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListContents
func (c *QConnect) ListContents(input *ListContentsInput) (*ListContentsOutput, error) {
	req, out := c.ListContentsRequest(input)
	return out, req.Send()
}

// ListContentsWithContext is the same as ListContents with the addition of
// the ability to pass a context and additional request options.
//
// See ListContents for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListContentsWithContext(ctx aws.Context, input *ListContentsInput, opts ...request.Option) (*ListContentsOutput, error) {
	req, out := c.ListContentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListContentsPages iterates over the pages of a ListContents operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListContents method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListContents operation.
//	pageNum := 0
//	err := client.ListContentsPages(params,
//	    func(page *qconnect.ListContentsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListContentsPages(input *ListContentsInput, fn func(*ListContentsOutput, bool) bool) error {
	return c.ListContentsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListContentsPagesWithContext same as ListContentsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListContentsPagesWithContext(ctx aws.Context, input *ListContentsInput, fn func(*ListContentsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListContentsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListContentsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListContentsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListImportJobs = "ListImportJobs"

// ListImportJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListImportJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListImportJobs for more information on using the ListImportJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListImportJobsRequest method.
//	req, resp := client.ListImportJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListImportJobs
func (c *QConnect) ListImportJobsRequest(input *ListImportJobsInput) (req *request.Request, output *ListImportJobsOutput) {
	op := &request.Operation{
		Name:       opListImportJobs,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/importJobs",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListImportJobsInput{}
	}

	output = &ListImportJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListImportJobs API operation for Amazon Q Connect.
//
// Lists information about import jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListImportJobs for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListImportJobs
func (c *QConnect) ListImportJobs(input *ListImportJobsInput) (*ListImportJobsOutput, error) {
	req, out := c.ListImportJobsRequest(input)
	return out, req.Send()
}

// ListImportJobsWithContext is the same as ListImportJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListImportJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListImportJobsWithContext(ctx aws.Context, input *ListImportJobsInput, opts ...request.Option) (*ListImportJobsOutput, error) {
	req, out := c.ListImportJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListImportJobsPages iterates over the pages of a ListImportJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListImportJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListImportJobs operation.
//	pageNum := 0
//	err := client.ListImportJobsPages(params,
//	    func(page *qconnect.ListImportJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListImportJobsPages(input *ListImportJobsInput, fn func(*ListImportJobsOutput, bool) bool) error {
	return c.ListImportJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListImportJobsPagesWithContext same as ListImportJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListImportJobsPagesWithContext(ctx aws.Context, input *ListImportJobsInput, fn func(*ListImportJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListImportJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListImportJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListImportJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListKnowledgeBases = "ListKnowledgeBases"

// ListKnowledgeBasesRequest generates a "aws/request.Request" representing the
// client's request for the ListKnowledgeBases operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListKnowledgeBases for more information on using the ListKnowledgeBases
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListKnowledgeBasesRequest method.
//	req, resp := client.ListKnowledgeBasesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListKnowledgeBases
func (c *QConnect) ListKnowledgeBasesRequest(input *ListKnowledgeBasesInput) (req *request.Request, output *ListKnowledgeBasesOutput) {
	op := &request.Operation{
		Name:       opListKnowledgeBases,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListKnowledgeBasesInput{}
	}

	output = &ListKnowledgeBasesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListKnowledgeBases API operation for Amazon Q Connect.
//
// Lists the knowledge bases.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListKnowledgeBases for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListKnowledgeBases
func (c *QConnect) ListKnowledgeBases(input *ListKnowledgeBasesInput) (*ListKnowledgeBasesOutput, error) {
	req, out := c.ListKnowledgeBasesRequest(input)
	return out, req.Send()
}

// ListKnowledgeBasesWithContext is the same as ListKnowledgeBases with the addition of
// the ability to pass a context and additional request options.
//
// See ListKnowledgeBases for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListKnowledgeBasesWithContext(ctx aws.Context, input *ListKnowledgeBasesInput, opts ...request.Option) (*ListKnowledgeBasesOutput, error) {
	req, out := c.ListKnowledgeBasesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListKnowledgeBasesPages iterates over the pages of a ListKnowledgeBases operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListKnowledgeBases method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListKnowledgeBases operation.
//	pageNum := 0
//	err := client.ListKnowledgeBasesPages(params,
//	    func(page *qconnect.ListKnowledgeBasesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListKnowledgeBasesPages(input *ListKnowledgeBasesInput, fn func(*ListKnowledgeBasesOutput, bool) bool) error {
	return c.ListKnowledgeBasesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListKnowledgeBasesPagesWithContext same as ListKnowledgeBasesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListKnowledgeBasesPagesWithContext(ctx aws.Context, input *ListKnowledgeBasesInput, fn func(*ListKnowledgeBasesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListKnowledgeBasesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListKnowledgeBasesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListKnowledgeBasesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListQuickResponses = "ListQuickResponses"

// ListQuickResponsesRequest generates a "aws/request.Request" representing the
// client's request for the ListQuickResponses operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListQuickResponses for more information on using the ListQuickResponses
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListQuickResponsesRequest method.
//	req, resp := client.ListQuickResponsesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListQuickResponses
func (c *QConnect) ListQuickResponsesRequest(input *ListQuickResponsesInput) (req *request.Request, output *ListQuickResponsesOutput) {
	op := &request.Operation{
		Name:       opListQuickResponses,
		HTTPMethod: "GET",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/quickResponses",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListQuickResponsesInput{}
	}

	output = &ListQuickResponsesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListQuickResponses API operation for Amazon Q Connect.
//
// Lists information about quick response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListQuickResponses for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListQuickResponses
func (c *QConnect) ListQuickResponses(input *ListQuickResponsesInput) (*ListQuickResponsesOutput, error) {
	req, out := c.ListQuickResponsesRequest(input)
	return out, req.Send()
}

// ListQuickResponsesWithContext is the same as ListQuickResponses with the addition of
// the ability to pass a context and additional request options.
//
// See ListQuickResponses for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListQuickResponsesWithContext(ctx aws.Context, input *ListQuickResponsesInput, opts ...request.Option) (*ListQuickResponsesOutput, error) {
	req, out := c.ListQuickResponsesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListQuickResponsesPages iterates over the pages of a ListQuickResponses operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListQuickResponses method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListQuickResponses operation.
//	pageNum := 0
//	err := client.ListQuickResponsesPages(params,
//	    func(page *qconnect.ListQuickResponsesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) ListQuickResponsesPages(input *ListQuickResponsesInput, fn func(*ListQuickResponsesOutput, bool) bool) error {
	return c.ListQuickResponsesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListQuickResponsesPagesWithContext same as ListQuickResponsesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListQuickResponsesPagesWithContext(ctx aws.Context, input *ListQuickResponsesInput, fn func(*ListQuickResponsesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListQuickResponsesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListQuickResponsesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListQuickResponsesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTagsForResource = "ListTagsForResource"

// ListTagsForResourceRequest generates a "aws/request.Request" representing the
// client's request for the ListTagsForResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTagsForResource for more information on using the ListTagsForResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTagsForResourceRequest method.
//	req, resp := client.ListTagsForResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListTagsForResource
func (c *QConnect) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
	op := &request.Operation{
		Name:       opListTagsForResource,
		HTTPMethod: "GET",
		HTTPPath:   "/tags/{resourceArn}",
	}

	if input == nil {
		input = &ListTagsForResourceInput{}
	}

	output = &ListTagsForResourceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTagsForResource API operation for Amazon Q Connect.
//
// Lists the tags for the specified resource.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/ListTagsForResource
func (c *QConnect) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	return out, req.Send()
}

// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
// the ability to pass a context and additional request options.
//
// See ListTagsForResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opNotifyRecommendationsReceived = "NotifyRecommendationsReceived"

// NotifyRecommendationsReceivedRequest generates a "aws/request.Request" representing the
// client's request for the NotifyRecommendationsReceived operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See NotifyRecommendationsReceived for more information on using the NotifyRecommendationsReceived
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the NotifyRecommendationsReceivedRequest method.
//	req, resp := client.NotifyRecommendationsReceivedRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/NotifyRecommendationsReceived
func (c *QConnect) NotifyRecommendationsReceivedRequest(input *NotifyRecommendationsReceivedInput) (req *request.Request, output *NotifyRecommendationsReceivedOutput) {
	op := &request.Operation{
		Name:       opNotifyRecommendationsReceived,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants/{assistantId}/sessions/{sessionId}/recommendations/notify",
	}

	if input == nil {
		input = &NotifyRecommendationsReceivedInput{}
	}

	output = &NotifyRecommendationsReceivedOutput{}
	req = c.newRequest(op, input, output)
	return
}

// NotifyRecommendationsReceived API operation for Amazon Q Connect.
//
// Removes the specified recommendations from the specified assistant's queue
// of newly available recommendations. You can use this API in conjunction with
// GetRecommendations (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_GetRecommendations.html)
// and a waitTimeSeconds input for long-polling behavior and avoiding duplicate
// recommendations.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation NotifyRecommendationsReceived for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/NotifyRecommendationsReceived
func (c *QConnect) NotifyRecommendationsReceived(input *NotifyRecommendationsReceivedInput) (*NotifyRecommendationsReceivedOutput, error) {
	req, out := c.NotifyRecommendationsReceivedRequest(input)
	return out, req.Send()
}

// NotifyRecommendationsReceivedWithContext is the same as NotifyRecommendationsReceived with the addition of
// the ability to pass a context and additional request options.
//
// See NotifyRecommendationsReceived for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) NotifyRecommendationsReceivedWithContext(ctx aws.Context, input *NotifyRecommendationsReceivedInput, opts ...request.Option) (*NotifyRecommendationsReceivedOutput, error) {
	req, out := c.NotifyRecommendationsReceivedRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutFeedback = "PutFeedback"

// PutFeedbackRequest generates a "aws/request.Request" representing the
// client's request for the PutFeedback operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutFeedback for more information on using the PutFeedback
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutFeedbackRequest method.
//	req, resp := client.PutFeedbackRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/PutFeedback
func (c *QConnect) PutFeedbackRequest(input *PutFeedbackInput) (req *request.Request, output *PutFeedbackOutput) {
	op := &request.Operation{
		Name:       opPutFeedback,
		HTTPMethod: "PUT",
		HTTPPath:   "/assistants/{assistantId}/feedback",
	}

	if input == nil {
		input = &PutFeedbackInput{}
	}

	output = &PutFeedbackOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutFeedback API operation for Amazon Q Connect.
//
// Provides feedback against the specified assistant for the specified target.
// This API only supports generative targets.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation PutFeedback for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/PutFeedback
func (c *QConnect) PutFeedback(input *PutFeedbackInput) (*PutFeedbackOutput, error) {
	req, out := c.PutFeedbackRequest(input)
	return out, req.Send()
}

// PutFeedbackWithContext is the same as PutFeedback with the addition of
// the ability to pass a context and additional request options.
//
// See PutFeedback for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) PutFeedbackWithContext(ctx aws.Context, input *PutFeedbackInput, opts ...request.Option) (*PutFeedbackOutput, error) {
	req, out := c.PutFeedbackRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opQueryAssistant = "QueryAssistant"

// QueryAssistantRequest generates a "aws/request.Request" representing the
// client's request for the QueryAssistant operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See QueryAssistant for more information on using the QueryAssistant
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the QueryAssistantRequest method.
//	req, resp := client.QueryAssistantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/QueryAssistant
//
// Deprecated: QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) QueryAssistantRequest(input *QueryAssistantInput) (req *request.Request, output *QueryAssistantOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, QueryAssistant, has been deprecated")
	}
	op := &request.Operation{
		Name:       opQueryAssistant,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants/{assistantId}/query",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &QueryAssistantInput{}
	}

	output = &QueryAssistantOutput{}
	req = c.newRequest(op, input, output)
	return
}

// QueryAssistant API operation for Amazon Q Connect.
//
// Performs a manual search against the specified assistant. To retrieve recommendations
// for an assistant, use GetRecommendations (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_GetRecommendations.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation QueryAssistant for usage and error information.
//
// Returned Error Types:
//
//   - RequestTimeoutException
//     The request reached the service more than 15 minutes after the date stamp
//     on the request or more than 15 minutes after the request expiration date
//     (such as for pre-signed URLs), or the date stamp on the request is more than
//     15 minutes in the future.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/QueryAssistant
//
// Deprecated: QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) QueryAssistant(input *QueryAssistantInput) (*QueryAssistantOutput, error) {
	req, out := c.QueryAssistantRequest(input)
	return out, req.Send()
}

// QueryAssistantWithContext is the same as QueryAssistant with the addition of
// the ability to pass a context and additional request options.
//
// See QueryAssistant for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) QueryAssistantWithContext(ctx aws.Context, input *QueryAssistantInput, opts ...request.Option) (*QueryAssistantOutput, error) {
	req, out := c.QueryAssistantRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// QueryAssistantPages iterates over the pages of a QueryAssistant operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See QueryAssistant method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a QueryAssistant operation.
//	pageNum := 0
//	err := client.QueryAssistantPages(params,
//	    func(page *qconnect.QueryAssistantOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) QueryAssistantPages(input *QueryAssistantInput, fn func(*QueryAssistantOutput, bool) bool) error {
	return c.QueryAssistantPagesWithContext(aws.BackgroundContext(), input, fn)
}

// QueryAssistantPagesWithContext same as QueryAssistantPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.
func (c *QConnect) QueryAssistantPagesWithContext(ctx aws.Context, input *QueryAssistantInput, fn func(*QueryAssistantOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *QueryAssistantInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.QueryAssistantRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*QueryAssistantOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opRemoveKnowledgeBaseTemplateUri = "RemoveKnowledgeBaseTemplateUri"

// RemoveKnowledgeBaseTemplateUriRequest generates a "aws/request.Request" representing the
// client's request for the RemoveKnowledgeBaseTemplateUri operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RemoveKnowledgeBaseTemplateUri for more information on using the RemoveKnowledgeBaseTemplateUri
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RemoveKnowledgeBaseTemplateUriRequest method.
//	req, resp := client.RemoveKnowledgeBaseTemplateUriRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/RemoveKnowledgeBaseTemplateUri
func (c *QConnect) RemoveKnowledgeBaseTemplateUriRequest(input *RemoveKnowledgeBaseTemplateUriInput) (req *request.Request, output *RemoveKnowledgeBaseTemplateUriOutput) {
	op := &request.Operation{
		Name:       opRemoveKnowledgeBaseTemplateUri,
		HTTPMethod: "DELETE",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/templateUri",
	}

	if input == nil {
		input = &RemoveKnowledgeBaseTemplateUriInput{}
	}

	output = &RemoveKnowledgeBaseTemplateUriOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RemoveKnowledgeBaseTemplateUri API operation for Amazon Q Connect.
//
// Removes a URI template from a knowledge base.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation RemoveKnowledgeBaseTemplateUri for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/RemoveKnowledgeBaseTemplateUri
func (c *QConnect) RemoveKnowledgeBaseTemplateUri(input *RemoveKnowledgeBaseTemplateUriInput) (*RemoveKnowledgeBaseTemplateUriOutput, error) {
	req, out := c.RemoveKnowledgeBaseTemplateUriRequest(input)
	return out, req.Send()
}

// RemoveKnowledgeBaseTemplateUriWithContext is the same as RemoveKnowledgeBaseTemplateUri with the addition of
// the ability to pass a context and additional request options.
//
// See RemoveKnowledgeBaseTemplateUri for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) RemoveKnowledgeBaseTemplateUriWithContext(ctx aws.Context, input *RemoveKnowledgeBaseTemplateUriInput, opts ...request.Option) (*RemoveKnowledgeBaseTemplateUriOutput, error) {
	req, out := c.RemoveKnowledgeBaseTemplateUriRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opSearchContent = "SearchContent"

// SearchContentRequest generates a "aws/request.Request" representing the
// client's request for the SearchContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SearchContent for more information on using the SearchContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SearchContentRequest method.
//	req, resp := client.SearchContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchContent
func (c *QConnect) SearchContentRequest(input *SearchContentInput) (req *request.Request, output *SearchContentOutput) {
	op := &request.Operation{
		Name:       opSearchContent,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/search",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchContentInput{}
	}

	output = &SearchContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SearchContent API operation for Amazon Q Connect.
//
// Searches for content in a specified knowledge base. Can be used to get a
// specific content resource by its name.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation SearchContent for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchContent
func (c *QConnect) SearchContent(input *SearchContentInput) (*SearchContentOutput, error) {
	req, out := c.SearchContentRequest(input)
	return out, req.Send()
}

// SearchContentWithContext is the same as SearchContent with the addition of
// the ability to pass a context and additional request options.
//
// See SearchContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchContentWithContext(ctx aws.Context, input *SearchContentInput, opts ...request.Option) (*SearchContentOutput, error) {
	req, out := c.SearchContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// SearchContentPages iterates over the pages of a SearchContent operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See SearchContent method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a SearchContent operation.
//	pageNum := 0
//	err := client.SearchContentPages(params,
//	    func(page *qconnect.SearchContentOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) SearchContentPages(input *SearchContentInput, fn func(*SearchContentOutput, bool) bool) error {
	return c.SearchContentPagesWithContext(aws.BackgroundContext(), input, fn)
}

// SearchContentPagesWithContext same as SearchContentPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchContentPagesWithContext(ctx aws.Context, input *SearchContentInput, fn func(*SearchContentOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *SearchContentInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.SearchContentRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*SearchContentOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opSearchQuickResponses = "SearchQuickResponses"

// SearchQuickResponsesRequest generates a "aws/request.Request" representing the
// client's request for the SearchQuickResponses operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SearchQuickResponses for more information on using the SearchQuickResponses
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SearchQuickResponsesRequest method.
//	req, resp := client.SearchQuickResponsesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchQuickResponses
func (c *QConnect) SearchQuickResponsesRequest(input *SearchQuickResponsesInput) (req *request.Request, output *SearchQuickResponsesOutput) {
	op := &request.Operation{
		Name:       opSearchQuickResponses,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/search/quickResponses",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchQuickResponsesInput{}
	}

	output = &SearchQuickResponsesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SearchQuickResponses API operation for Amazon Q Connect.
//
// Searches existing Amazon Q quick responses in an Amazon Q knowledge base.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation SearchQuickResponses for usage and error information.
//
// Returned Error Types:
//
//   - RequestTimeoutException
//     The request reached the service more than 15 minutes after the date stamp
//     on the request or more than 15 minutes after the request expiration date
//     (such as for pre-signed URLs), or the date stamp on the request is more than
//     15 minutes in the future.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchQuickResponses
func (c *QConnect) SearchQuickResponses(input *SearchQuickResponsesInput) (*SearchQuickResponsesOutput, error) {
	req, out := c.SearchQuickResponsesRequest(input)
	return out, req.Send()
}

// SearchQuickResponsesWithContext is the same as SearchQuickResponses with the addition of
// the ability to pass a context and additional request options.
//
// See SearchQuickResponses for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchQuickResponsesWithContext(ctx aws.Context, input *SearchQuickResponsesInput, opts ...request.Option) (*SearchQuickResponsesOutput, error) {
	req, out := c.SearchQuickResponsesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// SearchQuickResponsesPages iterates over the pages of a SearchQuickResponses operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See SearchQuickResponses method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a SearchQuickResponses operation.
//	pageNum := 0
//	err := client.SearchQuickResponsesPages(params,
//	    func(page *qconnect.SearchQuickResponsesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) SearchQuickResponsesPages(input *SearchQuickResponsesInput, fn func(*SearchQuickResponsesOutput, bool) bool) error {
	return c.SearchQuickResponsesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// SearchQuickResponsesPagesWithContext same as SearchQuickResponsesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchQuickResponsesPagesWithContext(ctx aws.Context, input *SearchQuickResponsesInput, fn func(*SearchQuickResponsesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *SearchQuickResponsesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.SearchQuickResponsesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*SearchQuickResponsesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opSearchSessions = "SearchSessions"

// SearchSessionsRequest generates a "aws/request.Request" representing the
// client's request for the SearchSessions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SearchSessions for more information on using the SearchSessions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SearchSessionsRequest method.
//	req, resp := client.SearchSessionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchSessions
func (c *QConnect) SearchSessionsRequest(input *SearchSessionsInput) (req *request.Request, output *SearchSessionsOutput) {
	op := &request.Operation{
		Name:       opSearchSessions,
		HTTPMethod: "POST",
		HTTPPath:   "/assistants/{assistantId}/searchSessions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchSessionsInput{}
	}

	output = &SearchSessionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SearchSessions API operation for Amazon Q Connect.
//
// Searches for sessions.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation SearchSessions for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/SearchSessions
func (c *QConnect) SearchSessions(input *SearchSessionsInput) (*SearchSessionsOutput, error) {
	req, out := c.SearchSessionsRequest(input)
	return out, req.Send()
}

// SearchSessionsWithContext is the same as SearchSessions with the addition of
// the ability to pass a context and additional request options.
//
// See SearchSessions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchSessionsWithContext(ctx aws.Context, input *SearchSessionsInput, opts ...request.Option) (*SearchSessionsOutput, error) {
	req, out := c.SearchSessionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// SearchSessionsPages iterates over the pages of a SearchSessions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See SearchSessions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a SearchSessions operation.
//	pageNum := 0
//	err := client.SearchSessionsPages(params,
//	    func(page *qconnect.SearchSessionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *QConnect) SearchSessionsPages(input *SearchSessionsInput, fn func(*SearchSessionsOutput, bool) bool) error {
	return c.SearchSessionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// SearchSessionsPagesWithContext same as SearchSessionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) SearchSessionsPagesWithContext(ctx aws.Context, input *SearchSessionsInput, fn func(*SearchSessionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *SearchSessionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.SearchSessionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*SearchSessionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opStartContentUpload = "StartContentUpload"

// StartContentUploadRequest generates a "aws/request.Request" representing the
// client's request for the StartContentUpload operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartContentUpload for more information on using the StartContentUpload
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartContentUploadRequest method.
//	req, resp := client.StartContentUploadRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/StartContentUpload
func (c *QConnect) StartContentUploadRequest(input *StartContentUploadInput) (req *request.Request, output *StartContentUploadOutput) {
	op := &request.Operation{
		Name:       opStartContentUpload,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/upload",
	}

	if input == nil {
		input = &StartContentUploadInput{}
	}

	output = &StartContentUploadOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StartContentUpload API operation for Amazon Q Connect.
//
// Get a URL to upload content to a knowledge base. To upload content, first
// make a PUT request to the returned URL with your file, making sure to include
// the required headers. Then use CreateContent (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_CreateContent.html)
// to finalize the content creation process or UpdateContent (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_UpdateContent.html)
// to modify an existing resource. You can only upload content to a knowledge
// base of type CUSTOM.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation StartContentUpload for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/StartContentUpload
func (c *QConnect) StartContentUpload(input *StartContentUploadInput) (*StartContentUploadOutput, error) {
	req, out := c.StartContentUploadRequest(input)
	return out, req.Send()
}

// StartContentUploadWithContext is the same as StartContentUpload with the addition of
// the ability to pass a context and additional request options.
//
// See StartContentUpload for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) StartContentUploadWithContext(ctx aws.Context, input *StartContentUploadInput, opts ...request.Option) (*StartContentUploadOutput, error) {
	req, out := c.StartContentUploadRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartImportJob = "StartImportJob"

// StartImportJobRequest generates a "aws/request.Request" representing the
// client's request for the StartImportJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartImportJob for more information on using the StartImportJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartImportJobRequest method.
//	req, resp := client.StartImportJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/StartImportJob
func (c *QConnect) StartImportJobRequest(input *StartImportJobInput) (req *request.Request, output *StartImportJobOutput) {
	op := &request.Operation{
		Name:       opStartImportJob,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/importJobs",
	}

	if input == nil {
		input = &StartImportJobInput{}
	}

	output = &StartImportJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StartImportJob API operation for Amazon Q Connect.
//
// Start an asynchronous job to import Amazon Q resources from an uploaded source
// file. Before calling this API, use StartContentUpload (https://docs.aws.amazon.com/wisdom/latest/APIReference/API_StartContentUpload.html)
// to upload an asset that contains the resource data.
//
//   - For importing Amazon Q quick responses, you need to upload a csv file
//     including the quick responses. For information about how to format the
//     csv file for importing quick responses, see Import quick responses (https://docs.aws.amazon.com/console/connect/quick-responses/add-data).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation StartImportJob for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - ServiceQuotaExceededException
//     You've exceeded your service quota. To perform the requested action, remove
//     some of the relevant resources, or use service quotas to request a service
//     quota increase.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/StartImportJob
func (c *QConnect) StartImportJob(input *StartImportJobInput) (*StartImportJobOutput, error) {
	req, out := c.StartImportJobRequest(input)
	return out, req.Send()
}

// StartImportJobWithContext is the same as StartImportJob with the addition of
// the ability to pass a context and additional request options.
//
// See StartImportJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) StartImportJobWithContext(ctx aws.Context, input *StartImportJobInput, opts ...request.Option) (*StartImportJobOutput, error) {
	req, out := c.StartImportJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opTagResource = "TagResource"

// TagResourceRequest generates a "aws/request.Request" representing the
// client's request for the TagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See TagResource for more information on using the TagResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the TagResourceRequest method.
//	req, resp := client.TagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/TagResource
func (c *QConnect) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/tags/{resourceArn}",
	}

	if input == nil {
		input = &TagResourceInput{}
	}

	output = &TagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// TagResource API operation for Amazon Q Connect.
//
// Adds the specified tags to the specified resource.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - TooManyTagsException
//     Amazon Q in Connect throws this exception if you have too many tags in your
//     tag set.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/TagResource
func (c *QConnect) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	return out, req.Send()
}

// TagResourceWithContext is the same as TagResource with the addition of
// the ability to pass a context and additional request options.
//
// See TagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUntagResource = "UntagResource"

// UntagResourceRequest generates a "aws/request.Request" representing the
// client's request for the UntagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UntagResource for more information on using the UntagResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UntagResourceRequest method.
//	req, resp := client.UntagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UntagResource
func (c *QConnect) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "DELETE",
		HTTPPath:   "/tags/{resourceArn}",
	}

	if input == nil {
		input = &UntagResourceInput{}
	}

	output = &UntagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UntagResource API operation for Amazon Q Connect.
//
// Removes the specified tags from the specified resource.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UntagResource
func (c *QConnect) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	return out, req.Send()
}

// UntagResourceWithContext is the same as UntagResource with the addition of
// the ability to pass a context and additional request options.
//
// See UntagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateContent = "UpdateContent"

// UpdateContentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateContent for more information on using the UpdateContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateContentRequest method.
//	req, resp := client.UpdateContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateContent
func (c *QConnect) UpdateContentRequest(input *UpdateContentInput) (req *request.Request, output *UpdateContentOutput) {
	op := &request.Operation{
		Name:       opUpdateContent,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
	}

	if input == nil {
		input = &UpdateContentInput{}
	}

	output = &UpdateContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateContent API operation for Amazon Q Connect.
//
// Updates information about the content.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation UpdateContent for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - PreconditionFailedException
//     The provided revisionId does not match, indicating the content has been modified
//     since it was last read.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateContent
func (c *QConnect) UpdateContent(input *UpdateContentInput) (*UpdateContentOutput, error) {
	req, out := c.UpdateContentRequest(input)
	return out, req.Send()
}

// UpdateContentWithContext is the same as UpdateContent with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) UpdateContentWithContext(ctx aws.Context, input *UpdateContentInput, opts ...request.Option) (*UpdateContentOutput, error) {
	req, out := c.UpdateContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateKnowledgeBaseTemplateUri = "UpdateKnowledgeBaseTemplateUri"

// UpdateKnowledgeBaseTemplateUriRequest generates a "aws/request.Request" representing the
// client's request for the UpdateKnowledgeBaseTemplateUri operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateKnowledgeBaseTemplateUri for more information on using the UpdateKnowledgeBaseTemplateUri
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateKnowledgeBaseTemplateUriRequest method.
//	req, resp := client.UpdateKnowledgeBaseTemplateUriRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateKnowledgeBaseTemplateUri
func (c *QConnect) UpdateKnowledgeBaseTemplateUriRequest(input *UpdateKnowledgeBaseTemplateUriInput) (req *request.Request, output *UpdateKnowledgeBaseTemplateUriOutput) {
	op := &request.Operation{
		Name:       opUpdateKnowledgeBaseTemplateUri,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/templateUri",
	}

	if input == nil {
		input = &UpdateKnowledgeBaseTemplateUriInput{}
	}

	output = &UpdateKnowledgeBaseTemplateUriOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateKnowledgeBaseTemplateUri API operation for Amazon Q Connect.
//
// Updates the template URI of a knowledge base. This is only supported for
// knowledge bases of type EXTERNAL. Include a single variable in ${variable}
// format; this interpolated by Amazon Q using ingested content. For example,
// if you ingest a Salesforce article, it has an Id value, and you can set the
// template URI to https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*/view.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation UpdateKnowledgeBaseTemplateUri for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateKnowledgeBaseTemplateUri
func (c *QConnect) UpdateKnowledgeBaseTemplateUri(input *UpdateKnowledgeBaseTemplateUriInput) (*UpdateKnowledgeBaseTemplateUriOutput, error) {
	req, out := c.UpdateKnowledgeBaseTemplateUriRequest(input)
	return out, req.Send()
}

// UpdateKnowledgeBaseTemplateUriWithContext is the same as UpdateKnowledgeBaseTemplateUri with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateKnowledgeBaseTemplateUri for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) UpdateKnowledgeBaseTemplateUriWithContext(ctx aws.Context, input *UpdateKnowledgeBaseTemplateUriInput, opts ...request.Option) (*UpdateKnowledgeBaseTemplateUriOutput, error) {
	req, out := c.UpdateKnowledgeBaseTemplateUriRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateQuickResponse = "UpdateQuickResponse"

// UpdateQuickResponseRequest generates a "aws/request.Request" representing the
// client's request for the UpdateQuickResponse operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateQuickResponse for more information on using the UpdateQuickResponse
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateQuickResponseRequest method.
//	req, resp := client.UpdateQuickResponseRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateQuickResponse
func (c *QConnect) UpdateQuickResponseRequest(input *UpdateQuickResponseInput) (req *request.Request, output *UpdateQuickResponseOutput) {
	op := &request.Operation{
		Name:       opUpdateQuickResponse,
		HTTPMethod: "POST",
		HTTPPath:   "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
	}

	if input == nil {
		input = &UpdateQuickResponseInput{}
	}

	output = &UpdateQuickResponseOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateQuickResponse API operation for Amazon Q Connect.
//
// Updates an existing Amazon Q quick response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Q Connect's
// API operation UpdateQuickResponse for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource. For example, if you're using a Create API (such as CreateAssistant)
//     that accepts name, a conflicting resource (usually with the same name) is
//     being created or mutated.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by a service.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - PreconditionFailedException
//     The provided revisionId does not match, indicating the content has been modified
//     since it was last read.
//
//   - ResourceNotFoundException
//     The specified resource does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19/UpdateQuickResponse
func (c *QConnect) UpdateQuickResponse(input *UpdateQuickResponseInput) (*UpdateQuickResponseOutput, error) {
	req, out := c.UpdateQuickResponseRequest(input)
	return out, req.Send()
}

// UpdateQuickResponseWithContext is the same as UpdateQuickResponse with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateQuickResponse for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *QConnect) UpdateQuickResponseWithContext(ctx aws.Context, input *UpdateQuickResponseInput, opts ...request.Option) (*UpdateQuickResponseOutput, error) {
	req, out := c.UpdateQuickResponseRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// You do not have sufficient access to perform this action.
type AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) GoString() string {
	return s.String()
}

func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
	return &AccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *AccessDeniedException) Code() string {
	return "AccessDeniedException"
}

// Message returns the exception's message.
func (s *AccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *AccessDeniedException) OrigErr() error {
	return nil
}

func (s *AccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *AccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Configuration information for Amazon AppIntegrations to automatically ingest
// content.
type AppIntegrationsConfiguration struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to
	// use for ingesting content.
	//
	//    * For Salesforce (https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/sforce_api_objects_knowledge__kav.htm),
	//    your AppIntegrations DataIntegration must have an ObjectConfiguration
	//    if objectFields is not provided, including at least Id, ArticleNumber,
	//    VersionNumber, Title, PublishStatus, and IsDeleted as source fields.
	//
	//    * For ServiceNow (https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/knowledge-management-api),
	//    your AppIntegrations DataIntegration must have an ObjectConfiguration
	//    if objectFields is not provided, including at least number, short_description,
	//    sys_mod_count, workflow_state, and active as source fields.
	//
	//    * For Zendesk (https://developer.zendesk.com/api-reference/help_center/help-center-api/articles/),
	//    your AppIntegrations DataIntegration must have an ObjectConfiguration
	//    if objectFields is not provided, including at least id, title, updated_at,
	//    and draft as source fields.
	//
	//    * For SharePoint (https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/sharepoint-net-server-csom-jsom-and-rest-api-index),
	//    your AppIntegrations DataIntegration must have a FileConfiguration, including
	//    only file extensions that are among docx, pdf, html, htm, and txt.
	//
	//    * For Amazon S3 (https://aws.amazon.com/s3/), the ObjectConfiguration
	//    and FileConfiguration of your AppIntegrations DataIntegration must be
	//    null. The SourceURI of your DataIntegration must use the following format:
	//    s3://your_s3_bucket_name. The bucket policy of the corresponding S3 bucket
	//    must allow the Amazon Web Services principal app-integrations.amazonaws.com
	//    to perform s3:ListBucket, s3:GetObject, and s3:GetBucketLocation against
	//    the bucket.
	//
	// AppIntegrationArn is a required field
	AppIntegrationArn *string `locationName:"appIntegrationArn" min:"1" type:"string" required:"true"`

	// The fields from the source that are made available to your agents in Amazon
	// Q. Optional if ObjectConfiguration is included in the provided DataIntegration.
	//
	//    * For Salesforce (https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/sforce_api_objects_knowledge__kav.htm),
	//    you must include at least Id, ArticleNumber, VersionNumber, Title, PublishStatus,
	//    and IsDeleted.
	//
	//    * For ServiceNow (https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/knowledge-management-api),
	//    you must include at least number, short_description, sys_mod_count, workflow_state,
	//    and active.
	//
	//    * For Zendesk (https://developer.zendesk.com/api-reference/help_center/help-center-api/articles/),
	//    you must include at least id, title, updated_at, and draft.
	//
	// Make sure to include additional fields. These fields are indexed and used
	// to source recommendations.
	ObjectFields []*string `locationName:"objectFields" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppIntegrationsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppIntegrationsConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AppIntegrationsConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AppIntegrationsConfiguration"}
	if s.AppIntegrationArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppIntegrationArn"))
	}
	if s.AppIntegrationArn != nil && len(*s.AppIntegrationArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AppIntegrationArn", 1))
	}
	if s.ObjectFields != nil && len(s.ObjectFields) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectFields", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppIntegrationArn sets the AppIntegrationArn field's value.
func (s *AppIntegrationsConfiguration) SetAppIntegrationArn(v string) *AppIntegrationsConfiguration {
	s.AppIntegrationArn = &v
	return s
}

// SetObjectFields sets the ObjectFields field's value.
func (s *AppIntegrationsConfiguration) SetObjectFields(v []*string) *AppIntegrationsConfiguration {
	s.ObjectFields = v
	return s
}

// Information about the assistant association.
type AssistantAssociationData struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the assistant association.
	//
	// AssistantAssociationArn is a required field
	AssistantAssociationArn *string `locationName:"assistantAssociationArn" type:"string" required:"true"`

	// The identifier of the assistant association.
	//
	// AssistantAssociationId is a required field
	AssistantAssociationId *string `locationName:"assistantAssociationId" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// A union type that currently has a single argument, the knowledge base ID.
	//
	// AssociationData is a required field
	AssociationData *AssistantAssociationOutputData `locationName:"associationData" type:"structure" required:"true"`

	// The type of association.
	//
	// AssociationType is a required field
	AssociationType *string `locationName:"associationType" type:"string" required:"true" enum:"AssociationType"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationData) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *AssistantAssociationData) SetAssistantArn(v string) *AssistantAssociationData {
	s.AssistantArn = &v
	return s
}

// SetAssistantAssociationArn sets the AssistantAssociationArn field's value.
func (s *AssistantAssociationData) SetAssistantAssociationArn(v string) *AssistantAssociationData {
	s.AssistantAssociationArn = &v
	return s
}

// SetAssistantAssociationId sets the AssistantAssociationId field's value.
func (s *AssistantAssociationData) SetAssistantAssociationId(v string) *AssistantAssociationData {
	s.AssistantAssociationId = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *AssistantAssociationData) SetAssistantId(v string) *AssistantAssociationData {
	s.AssistantId = &v
	return s
}

// SetAssociationData sets the AssociationData field's value.
func (s *AssistantAssociationData) SetAssociationData(v *AssistantAssociationOutputData) *AssistantAssociationData {
	s.AssociationData = v
	return s
}

// SetAssociationType sets the AssociationType field's value.
func (s *AssistantAssociationData) SetAssociationType(v string) *AssistantAssociationData {
	s.AssociationType = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *AssistantAssociationData) SetTags(v map[string]*string) *AssistantAssociationData {
	s.Tags = v
	return s
}

// The data that is input into Amazon Q as a result of the assistant association.
type AssistantAssociationInputData struct {
	_ struct{} `type:"structure"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationInputData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationInputData) GoString() string {
	return s.String()
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *AssistantAssociationInputData) SetKnowledgeBaseId(v string) *AssistantAssociationInputData {
	s.KnowledgeBaseId = &v
	return s
}

// The data that is output as a result of the assistant association.
type AssistantAssociationOutputData struct {
	_ struct{} `type:"structure"`

	// The knowledge base where output data is sent.
	KnowledgeBaseAssociation *KnowledgeBaseAssociationData `locationName:"knowledgeBaseAssociation" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationOutputData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationOutputData) GoString() string {
	return s.String()
}

// SetKnowledgeBaseAssociation sets the KnowledgeBaseAssociation field's value.
func (s *AssistantAssociationOutputData) SetKnowledgeBaseAssociation(v *KnowledgeBaseAssociationData) *AssistantAssociationOutputData {
	s.KnowledgeBaseAssociation = v
	return s
}

// Summary information about the assistant association.
type AssistantAssociationSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the assistant association.
	//
	// AssistantAssociationArn is a required field
	AssistantAssociationArn *string `locationName:"assistantAssociationArn" type:"string" required:"true"`

	// The identifier of the assistant association.
	//
	// AssistantAssociationId is a required field
	AssistantAssociationId *string `locationName:"assistantAssociationId" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// The association data.
	//
	// AssociationData is a required field
	AssociationData *AssistantAssociationOutputData `locationName:"associationData" type:"structure" required:"true"`

	// The type of association.
	//
	// AssociationType is a required field
	AssociationType *string `locationName:"associationType" type:"string" required:"true" enum:"AssociationType"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantAssociationSummary) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *AssistantAssociationSummary) SetAssistantArn(v string) *AssistantAssociationSummary {
	s.AssistantArn = &v
	return s
}

// SetAssistantAssociationArn sets the AssistantAssociationArn field's value.
func (s *AssistantAssociationSummary) SetAssistantAssociationArn(v string) *AssistantAssociationSummary {
	s.AssistantAssociationArn = &v
	return s
}

// SetAssistantAssociationId sets the AssistantAssociationId field's value.
func (s *AssistantAssociationSummary) SetAssistantAssociationId(v string) *AssistantAssociationSummary {
	s.AssistantAssociationId = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *AssistantAssociationSummary) SetAssistantId(v string) *AssistantAssociationSummary {
	s.AssistantId = &v
	return s
}

// SetAssociationData sets the AssociationData field's value.
func (s *AssistantAssociationSummary) SetAssociationData(v *AssistantAssociationOutputData) *AssistantAssociationSummary {
	s.AssociationData = v
	return s
}

// SetAssociationType sets the AssociationType field's value.
func (s *AssistantAssociationSummary) SetAssociationType(v string) *AssistantAssociationSummary {
	s.AssociationType = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *AssistantAssociationSummary) SetTags(v map[string]*string) *AssistantAssociationSummary {
	s.Tags = v
	return s
}

// The capability configuration for an Amazon Q assistant.
type AssistantCapabilityConfiguration struct {
	_ struct{} `type:"structure"`

	// The type of Amazon Q assistant capability.
	Type *string `locationName:"type" type:"string" enum:"AssistantCapabilityType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantCapabilityConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantCapabilityConfiguration) GoString() string {
	return s.String()
}

// SetType sets the Type field's value.
func (s *AssistantCapabilityConfiguration) SetType(v string) *AssistantCapabilityConfiguration {
	s.Type = &v
	return s
}

// The assistant data.
type AssistantData struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// The configuration information for the Amazon Q assistant capability.
	CapabilityConfiguration *AssistantCapabilityConfiguration `locationName:"capabilityConfiguration" type:"structure"`

	// The description.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information for the Amazon Q assistant integration.
	IntegrationConfiguration *AssistantIntegrationConfiguration `locationName:"integrationConfiguration" type:"structure"`

	// The name.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The configuration information for the customer managed key used for encryption.
	//
	// This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey,
	// kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using
	// the key to invoke Amazon Q. To use Amazon Q with chat, the key policy must
	// also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions
	// to the connect.amazonaws.com service principal.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// The status of the assistant.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"AssistantStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The type of assistant.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AssistantType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantData) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *AssistantData) SetAssistantArn(v string) *AssistantData {
	s.AssistantArn = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *AssistantData) SetAssistantId(v string) *AssistantData {
	s.AssistantId = &v
	return s
}

// SetCapabilityConfiguration sets the CapabilityConfiguration field's value.
func (s *AssistantData) SetCapabilityConfiguration(v *AssistantCapabilityConfiguration) *AssistantData {
	s.CapabilityConfiguration = v
	return s
}

// SetDescription sets the Description field's value.
func (s *AssistantData) SetDescription(v string) *AssistantData {
	s.Description = &v
	return s
}

// SetIntegrationConfiguration sets the IntegrationConfiguration field's value.
func (s *AssistantData) SetIntegrationConfiguration(v *AssistantIntegrationConfiguration) *AssistantData {
	s.IntegrationConfiguration = v
	return s
}

// SetName sets the Name field's value.
func (s *AssistantData) SetName(v string) *AssistantData {
	s.Name = &v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *AssistantData) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *AssistantData {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetStatus sets the Status field's value.
func (s *AssistantData) SetStatus(v string) *AssistantData {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *AssistantData) SetTags(v map[string]*string) *AssistantData {
	s.Tags = v
	return s
}

// SetType sets the Type field's value.
func (s *AssistantData) SetType(v string) *AssistantData {
	s.Type = &v
	return s
}

// The configuration information for the Amazon Q assistant integration.
type AssistantIntegrationConfiguration struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the integrated Amazon SNS topic used for
	// streaming chat messages.
	TopicIntegrationArn *string `locationName:"topicIntegrationArn" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantIntegrationConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantIntegrationConfiguration) GoString() string {
	return s.String()
}

// SetTopicIntegrationArn sets the TopicIntegrationArn field's value.
func (s *AssistantIntegrationConfiguration) SetTopicIntegrationArn(v string) *AssistantIntegrationConfiguration {
	s.TopicIntegrationArn = &v
	return s
}

// Summary information about the assistant.
type AssistantSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// The configuration information for the Amazon Q assistant capability.
	CapabilityConfiguration *AssistantCapabilityConfiguration `locationName:"capabilityConfiguration" type:"structure"`

	// The description of the assistant.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information for the Amazon Q assistant integration.
	IntegrationConfiguration *AssistantIntegrationConfiguration `locationName:"integrationConfiguration" type:"structure"`

	// The name of the assistant.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The configuration information for the customer managed key used for encryption.
	//
	// This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey,
	// kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using
	// the key to invoke Amazon Q. To use Amazon Q with chat, the key policy must
	// also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions
	// to the connect.amazonaws.com service principal.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// The status of the assistant.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"AssistantStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The type of the assistant.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AssistantType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssistantSummary) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *AssistantSummary) SetAssistantArn(v string) *AssistantSummary {
	s.AssistantArn = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *AssistantSummary) SetAssistantId(v string) *AssistantSummary {
	s.AssistantId = &v
	return s
}

// SetCapabilityConfiguration sets the CapabilityConfiguration field's value.
func (s *AssistantSummary) SetCapabilityConfiguration(v *AssistantCapabilityConfiguration) *AssistantSummary {
	s.CapabilityConfiguration = v
	return s
}

// SetDescription sets the Description field's value.
func (s *AssistantSummary) SetDescription(v string) *AssistantSummary {
	s.Description = &v
	return s
}

// SetIntegrationConfiguration sets the IntegrationConfiguration field's value.
func (s *AssistantSummary) SetIntegrationConfiguration(v *AssistantIntegrationConfiguration) *AssistantSummary {
	s.IntegrationConfiguration = v
	return s
}

// SetName sets the Name field's value.
func (s *AssistantSummary) SetName(v string) *AssistantSummary {
	s.Name = &v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *AssistantSummary) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *AssistantSummary {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetStatus sets the Status field's value.
func (s *AssistantSummary) SetStatus(v string) *AssistantSummary {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *AssistantSummary) SetTags(v map[string]*string) *AssistantSummary {
	s.Tags = v
	return s
}

// SetType sets the Type field's value.
func (s *AssistantSummary) SetType(v string) *AssistantSummary {
	s.Type = &v
	return s
}

// The configuration information of the external data source.
type Configuration struct {
	_ struct{} `type:"structure"`

	// The configuration information of the Amazon Connect data source.
	ConnectConfiguration *ConnectConfiguration `locationName:"connectConfiguration" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Configuration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Configuration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Configuration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Configuration"}
	if s.ConnectConfiguration != nil {
		if err := s.ConnectConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ConnectConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConnectConfiguration sets the ConnectConfiguration field's value.
func (s *Configuration) SetConnectConfiguration(v *ConnectConfiguration) *Configuration {
	s.ConnectConfiguration = v
	return s
}

// The request could not be processed because of conflict in the current state
// of the resource. For example, if you're using a Create API (such as CreateAssistant)
// that accepts name, a conflicting resource (usually with the same name) is
// being created or mutated.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) GoString() string {
	return s.String()
}

func newErrorConflictException(v protocol.ResponseMetadata) error {
	return &ConflictException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ConflictException) Code() string {
	return "ConflictException"
}

// Message returns the exception's message.
func (s *ConflictException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ConflictException) OrigErr() error {
	return nil
}

func (s *ConflictException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ConflictException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ConflictException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The configuration information of the Amazon Connect data source.
type ConnectConfiguration struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Connect instance. You can find the instanceId
	// in the ARN of the instance.
	InstanceId *string `locationName:"instanceId" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConnectConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConnectConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ConnectConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ConnectConfiguration"}
	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceId sets the InstanceId field's value.
func (s *ConnectConfiguration) SetInstanceId(v string) *ConnectConfiguration {
	s.InstanceId = &v
	return s
}

// Information about the content.
type ContentData struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the content.
	//
	// ContentArn is a required field
	ContentArn *string `locationName:"contentArn" type:"string" required:"true"`

	// The identifier of the content.
	//
	// ContentId is a required field
	ContentId *string `locationName:"contentId" type:"string" required:"true"`

	// The media type of the content.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The URI of the content.
	LinkOutUri *string `locationName:"linkOutUri" min:"1" type:"string"`

	// A key/value map to store attributes without affecting tagging or recommendations.
	// For example, when synchronizing data between an external system and Amazon
	// Q, you can store an external version identifier as metadata to utilize for
	// determining drift.
	//
	// Metadata is a required field
	Metadata map[string]*string `locationName:"metadata" type:"map" required:"true"`

	// The name of the content.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The identifier of the content revision.
	//
	// RevisionId is a required field
	RevisionId *string `locationName:"revisionId" min:"1" type:"string" required:"true"`

	// The status of the content.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"ContentStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The title of the content.
	//
	// Title is a required field
	Title *string `locationName:"title" min:"1" type:"string" required:"true"`

	// The URL of the content.
	//
	// Url is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ContentData's
	// String and GoString methods.
	//
	// Url is a required field
	Url *string `locationName:"url" min:"1" type:"string" required:"true" sensitive:"true"`

	// The expiration time of the URL as an epoch timestamp.
	//
	// UrlExpiry is a required field
	UrlExpiry *time.Time `locationName:"urlExpiry" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentData) GoString() string {
	return s.String()
}

// SetContentArn sets the ContentArn field's value.
func (s *ContentData) SetContentArn(v string) *ContentData {
	s.ContentArn = &v
	return s
}

// SetContentId sets the ContentId field's value.
func (s *ContentData) SetContentId(v string) *ContentData {
	s.ContentId = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *ContentData) SetContentType(v string) *ContentData {
	s.ContentType = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *ContentData) SetKnowledgeBaseArn(v string) *ContentData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ContentData) SetKnowledgeBaseId(v string) *ContentData {
	s.KnowledgeBaseId = &v
	return s
}

// SetLinkOutUri sets the LinkOutUri field's value.
func (s *ContentData) SetLinkOutUri(v string) *ContentData {
	s.LinkOutUri = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ContentData) SetMetadata(v map[string]*string) *ContentData {
	s.Metadata = v
	return s
}

// SetName sets the Name field's value.
func (s *ContentData) SetName(v string) *ContentData {
	s.Name = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *ContentData) SetRevisionId(v string) *ContentData {
	s.RevisionId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ContentData) SetStatus(v string) *ContentData {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *ContentData) SetTags(v map[string]*string) *ContentData {
	s.Tags = v
	return s
}

// SetTitle sets the Title field's value.
func (s *ContentData) SetTitle(v string) *ContentData {
	s.Title = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *ContentData) SetUrl(v string) *ContentData {
	s.Url = &v
	return s
}

// SetUrlExpiry sets the UrlExpiry field's value.
func (s *ContentData) SetUrlExpiry(v time.Time) *ContentData {
	s.UrlExpiry = &v
	return s
}

// Details about the content data.
type ContentDataDetails struct {
	_ struct{} `type:"structure"`

	// Details about the content ranking data.
	//
	// RankingData is a required field
	RankingData *RankingData `locationName:"rankingData" type:"structure" required:"true"`

	// Details about the content text data.
	//
	// TextData is a required field
	TextData *TextData `locationName:"textData" type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentDataDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentDataDetails) GoString() string {
	return s.String()
}

// SetRankingData sets the RankingData field's value.
func (s *ContentDataDetails) SetRankingData(v *RankingData) *ContentDataDetails {
	s.RankingData = v
	return s
}

// SetTextData sets the TextData field's value.
func (s *ContentDataDetails) SetTextData(v *TextData) *ContentDataDetails {
	s.TextData = v
	return s
}

// Information about the feedback.
type ContentFeedbackData struct {
	_ struct{} `type:"structure"`

	// Information about the feedback for a generative target type.
	GenerativeContentFeedbackData *GenerativeContentFeedbackData `locationName:"generativeContentFeedbackData" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentFeedbackData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentFeedbackData) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContentFeedbackData) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContentFeedbackData"}
	if s.GenerativeContentFeedbackData != nil {
		if err := s.GenerativeContentFeedbackData.Validate(); err != nil {
			invalidParams.AddNested("GenerativeContentFeedbackData", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetGenerativeContentFeedbackData sets the GenerativeContentFeedbackData field's value.
func (s *ContentFeedbackData) SetGenerativeContentFeedbackData(v *GenerativeContentFeedbackData) *ContentFeedbackData {
	s.GenerativeContentFeedbackData = v
	return s
}

// Reference information about the content.
type ContentReference struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the content.
	ContentArn *string `locationName:"contentArn" type:"string"`

	// The identifier of the content.
	ContentId *string `locationName:"contentId" type:"string"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentReference) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentReference) GoString() string {
	return s.String()
}

// SetContentArn sets the ContentArn field's value.
func (s *ContentReference) SetContentArn(v string) *ContentReference {
	s.ContentArn = &v
	return s
}

// SetContentId sets the ContentId field's value.
func (s *ContentReference) SetContentId(v string) *ContentReference {
	s.ContentId = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *ContentReference) SetKnowledgeBaseArn(v string) *ContentReference {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ContentReference) SetKnowledgeBaseId(v string) *ContentReference {
	s.KnowledgeBaseId = &v
	return s
}

// Summary information about the content.
type ContentSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the content.
	//
	// ContentArn is a required field
	ContentArn *string `locationName:"contentArn" type:"string" required:"true"`

	// The identifier of the content.
	//
	// ContentId is a required field
	ContentId *string `locationName:"contentId" type:"string" required:"true"`

	// The media type of the content.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// A key/value map to store attributes without affecting tagging or recommendations.
	// For example, when synchronizing data between an external system and Amazon
	// Q, you can store an external version identifier as metadata to utilize for
	// determining drift.
	//
	// Metadata is a required field
	Metadata map[string]*string `locationName:"metadata" type:"map" required:"true"`

	// The name of the content.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The identifier of the revision of the content.
	//
	// RevisionId is a required field
	RevisionId *string `locationName:"revisionId" min:"1" type:"string" required:"true"`

	// The status of the content.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"ContentStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The title of the content.
	//
	// Title is a required field
	Title *string `locationName:"title" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentSummary) GoString() string {
	return s.String()
}

// SetContentArn sets the ContentArn field's value.
func (s *ContentSummary) SetContentArn(v string) *ContentSummary {
	s.ContentArn = &v
	return s
}

// SetContentId sets the ContentId field's value.
func (s *ContentSummary) SetContentId(v string) *ContentSummary {
	s.ContentId = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *ContentSummary) SetContentType(v string) *ContentSummary {
	s.ContentType = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *ContentSummary) SetKnowledgeBaseArn(v string) *ContentSummary {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ContentSummary) SetKnowledgeBaseId(v string) *ContentSummary {
	s.KnowledgeBaseId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ContentSummary) SetMetadata(v map[string]*string) *ContentSummary {
	s.Metadata = v
	return s
}

// SetName sets the Name field's value.
func (s *ContentSummary) SetName(v string) *ContentSummary {
	s.Name = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *ContentSummary) SetRevisionId(v string) *ContentSummary {
	s.RevisionId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ContentSummary) SetStatus(v string) *ContentSummary {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *ContentSummary) SetTags(v map[string]*string) *ContentSummary {
	s.Tags = v
	return s
}

// SetTitle sets the Title field's value.
func (s *ContentSummary) SetTitle(v string) *ContentSummary {
	s.Title = &v
	return s
}

type CreateAssistantAssociationInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The identifier of the associated resource.
	//
	// Association is a required field
	Association *AssistantAssociationInputData `locationName:"association" type:"structure" required:"true"`

	// The type of association.
	//
	// AssociationType is a required field
	AssociationType *string `locationName:"associationType" type:"string" required:"true" enum:"AssociationType"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantAssociationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantAssociationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAssistantAssociationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAssistantAssociationInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.Association == nil {
		invalidParams.Add(request.NewErrParamRequired("Association"))
	}
	if s.AssociationType == nil {
		invalidParams.Add(request.NewErrParamRequired("AssociationType"))
	}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *CreateAssistantAssociationInput) SetAssistantId(v string) *CreateAssistantAssociationInput {
	s.AssistantId = &v
	return s
}

// SetAssociation sets the Association field's value.
func (s *CreateAssistantAssociationInput) SetAssociation(v *AssistantAssociationInputData) *CreateAssistantAssociationInput {
	s.Association = v
	return s
}

// SetAssociationType sets the AssociationType field's value.
func (s *CreateAssistantAssociationInput) SetAssociationType(v string) *CreateAssistantAssociationInput {
	s.AssociationType = &v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateAssistantAssociationInput) SetClientToken(v string) *CreateAssistantAssociationInput {
	s.ClientToken = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAssistantAssociationInput) SetTags(v map[string]*string) *CreateAssistantAssociationInput {
	s.Tags = v
	return s
}

type CreateAssistantAssociationOutput struct {
	_ struct{} `type:"structure"`

	// The assistant association.
	AssistantAssociation *AssistantAssociationData `locationName:"assistantAssociation" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantAssociationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantAssociationOutput) GoString() string {
	return s.String()
}

// SetAssistantAssociation sets the AssistantAssociation field's value.
func (s *CreateAssistantAssociationOutput) SetAssistantAssociation(v *AssistantAssociationData) *CreateAssistantAssociationOutput {
	s.AssistantAssociation = v
	return s
}

type CreateAssistantInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The description of the assistant.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The name of the assistant.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The configuration information for the customer managed key used for encryption.
	//
	// The customer managed key must have a policy that allows kms:CreateGrant,
	// kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the
	// IAM identity using the key to invoke Amazon Q. To use Amazon Q with chat,
	// the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey
	// permissions to the connect.amazonaws.com service principal.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The type of assistant.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AssistantType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAssistantInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAssistantInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.ServerSideEncryptionConfiguration != nil {
		if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateAssistantInput) SetClientToken(v string) *CreateAssistantInput {
	s.ClientToken = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateAssistantInput) SetDescription(v string) *CreateAssistantInput {
	s.Description = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateAssistantInput) SetName(v string) *CreateAssistantInput {
	s.Name = &v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *CreateAssistantInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *CreateAssistantInput {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAssistantInput) SetTags(v map[string]*string) *CreateAssistantInput {
	s.Tags = v
	return s
}

// SetType sets the Type field's value.
func (s *CreateAssistantInput) SetType(v string) *CreateAssistantInput {
	s.Type = &v
	return s
}

type CreateAssistantOutput struct {
	_ struct{} `type:"structure"`

	// Information about the assistant.
	Assistant *AssistantData `locationName:"assistant" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAssistantOutput) GoString() string {
	return s.String()
}

// SetAssistant sets the Assistant field's value.
func (s *CreateAssistantOutput) SetAssistant(v *AssistantData) *CreateAssistantOutput {
	s.Assistant = v
	return s
}

type CreateContentInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// A key/value map to store attributes without affecting tagging or recommendations.
	// For example, when synchronizing data between an external system and Amazon
	// Q, you can store an external version identifier as metadata to utilize for
	// determining drift.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// The name of the content. Each piece of content in a knowledge base must have
	// a unique name. You can retrieve a piece of content using only its knowledge
	// base and its name with the SearchContent (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_SearchContent.html)
	// API.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The URI you want to use for the article. If the knowledge base has a templateUri,
	// setting this argument overrides it for this piece of content.
	OverrideLinkOutUri *string `locationName:"overrideLinkOutUri" min:"1" type:"string"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`

	// The title of the content. If not set, the title is equal to the name.
	Title *string `locationName:"title" min:"1" type:"string"`

	// A pointer to the uploaded asset. This value is returned by StartContentUpload
	// (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_StartContentUpload.html).
	//
	// UploadId is a required field
	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateContentInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.OverrideLinkOutUri != nil && len(*s.OverrideLinkOutUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("OverrideLinkOutUri", 1))
	}
	if s.Title != nil && len(*s.Title) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Title", 1))
	}
	if s.UploadId == nil {
		invalidParams.Add(request.NewErrParamRequired("UploadId"))
	}
	if s.UploadId != nil && len(*s.UploadId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateContentInput) SetClientToken(v string) *CreateContentInput {
	s.ClientToken = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *CreateContentInput) SetKnowledgeBaseId(v string) *CreateContentInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *CreateContentInput) SetMetadata(v map[string]*string) *CreateContentInput {
	s.Metadata = v
	return s
}

// SetName sets the Name field's value.
func (s *CreateContentInput) SetName(v string) *CreateContentInput {
	s.Name = &v
	return s
}

// SetOverrideLinkOutUri sets the OverrideLinkOutUri field's value.
func (s *CreateContentInput) SetOverrideLinkOutUri(v string) *CreateContentInput {
	s.OverrideLinkOutUri = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateContentInput) SetTags(v map[string]*string) *CreateContentInput {
	s.Tags = v
	return s
}

// SetTitle sets the Title field's value.
func (s *CreateContentInput) SetTitle(v string) *CreateContentInput {
	s.Title = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *CreateContentInput) SetUploadId(v string) *CreateContentInput {
	s.UploadId = &v
	return s
}

type CreateContentOutput struct {
	_ struct{} `type:"structure"`

	// The content.
	Content *ContentData `locationName:"content" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContentOutput) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *CreateContentOutput) SetContent(v *ContentData) *CreateContentOutput {
	s.Content = v
	return s
}

type CreateKnowledgeBaseInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The description.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The type of knowledge base. Only CUSTOM knowledge bases allow you to upload
	// your own content. EXTERNAL knowledge bases support integrations with third-party
	// systems whose content is synchronized automatically.
	//
	// KnowledgeBaseType is a required field
	KnowledgeBaseType *string `locationName:"knowledgeBaseType" type:"string" required:"true" enum:"KnowledgeBaseType"`

	// The name of the knowledge base.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// Information about how to render the content.
	RenderingConfiguration *RenderingConfiguration `locationName:"renderingConfiguration" type:"structure"`

	// The configuration information for the customer managed key used for encryption.
	//
	// This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey,
	// kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using
	// the key to invoke Amazon Q.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// The source of the knowledge base content. Only set this argument for EXTERNAL
	// knowledge bases.
	SourceConfiguration *SourceConfiguration `locationName:"sourceConfiguration" type:"structure"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateKnowledgeBaseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateKnowledgeBaseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateKnowledgeBaseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateKnowledgeBaseInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.KnowledgeBaseType == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseType"))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.RenderingConfiguration != nil {
		if err := s.RenderingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("RenderingConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.ServerSideEncryptionConfiguration != nil {
		if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceConfiguration != nil {
		if err := s.SourceConfiguration.Validate(); err != nil {
			invalidParams.AddNested("SourceConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateKnowledgeBaseInput) SetClientToken(v string) *CreateKnowledgeBaseInput {
	s.ClientToken = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateKnowledgeBaseInput) SetDescription(v string) *CreateKnowledgeBaseInput {
	s.Description = &v
	return s
}

// SetKnowledgeBaseType sets the KnowledgeBaseType field's value.
func (s *CreateKnowledgeBaseInput) SetKnowledgeBaseType(v string) *CreateKnowledgeBaseInput {
	s.KnowledgeBaseType = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateKnowledgeBaseInput) SetName(v string) *CreateKnowledgeBaseInput {
	s.Name = &v
	return s
}

// SetRenderingConfiguration sets the RenderingConfiguration field's value.
func (s *CreateKnowledgeBaseInput) SetRenderingConfiguration(v *RenderingConfiguration) *CreateKnowledgeBaseInput {
	s.RenderingConfiguration = v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *CreateKnowledgeBaseInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *CreateKnowledgeBaseInput {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetSourceConfiguration sets the SourceConfiguration field's value.
func (s *CreateKnowledgeBaseInput) SetSourceConfiguration(v *SourceConfiguration) *CreateKnowledgeBaseInput {
	s.SourceConfiguration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateKnowledgeBaseInput) SetTags(v map[string]*string) *CreateKnowledgeBaseInput {
	s.Tags = v
	return s
}

type CreateKnowledgeBaseOutput struct {
	_ struct{} `type:"structure"`

	// The knowledge base.
	KnowledgeBase *KnowledgeBaseData `locationName:"knowledgeBase" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateKnowledgeBaseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateKnowledgeBaseOutput) GoString() string {
	return s.String()
}

// SetKnowledgeBase sets the KnowledgeBase field's value.
func (s *CreateKnowledgeBaseOutput) SetKnowledgeBase(v *KnowledgeBaseData) *CreateKnowledgeBaseOutput {
	s.KnowledgeBase = v
	return s
}

type CreateQuickResponseInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Connect channels this quick response applies to.
	Channels []*string `locationName:"channels" type:"list"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The content of the quick response.
	//
	// Content is a required field
	Content *QuickResponseDataProvider `locationName:"content" type:"structure" required:"true"`

	// The media type of the quick response content.
	//
	//    * Use application/x.quickresponse;format=plain for a quick response written
	//    in plain text.
	//
	//    * Use application/x.quickresponse;format=markdown for a quick response
	//    written in richtext.
	ContentType *string `locationName:"contentType" type:"string"`

	// The description of the quick response.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information of the user groups that the quick response
	// is accessible to.
	GroupingConfiguration *GroupingConfiguration `locationName:"groupingConfiguration" type:"structure"`

	// Whether the quick response is active.
	IsActive *bool `locationName:"isActive" type:"boolean"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The language code value for the language in which the quick response is written.
	// The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT,
	// ja_JP, ko_KR, pt_BR, zh_CN, zh_TW
	Language *string `locationName:"language" min:"2" type:"string"`

	// The name of the quick response.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The shortcut key of the quick response. The value should be unique across
	// the knowledge base.
	ShortcutKey *string `locationName:"shortcutKey" min:"1" type:"string"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateQuickResponseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateQuickResponseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateQuickResponseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateQuickResponseInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.Language != nil && len(*s.Language) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("Language", 2))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.ShortcutKey != nil && len(*s.ShortcutKey) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ShortcutKey", 1))
	}
	if s.Content != nil {
		if err := s.Content.Validate(); err != nil {
			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
		}
	}
	if s.GroupingConfiguration != nil {
		if err := s.GroupingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("GroupingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannels sets the Channels field's value.
func (s *CreateQuickResponseInput) SetChannels(v []*string) *CreateQuickResponseInput {
	s.Channels = v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateQuickResponseInput) SetClientToken(v string) *CreateQuickResponseInput {
	s.ClientToken = &v
	return s
}

// SetContent sets the Content field's value.
func (s *CreateQuickResponseInput) SetContent(v *QuickResponseDataProvider) *CreateQuickResponseInput {
	s.Content = v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *CreateQuickResponseInput) SetContentType(v string) *CreateQuickResponseInput {
	s.ContentType = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateQuickResponseInput) SetDescription(v string) *CreateQuickResponseInput {
	s.Description = &v
	return s
}

// SetGroupingConfiguration sets the GroupingConfiguration field's value.
func (s *CreateQuickResponseInput) SetGroupingConfiguration(v *GroupingConfiguration) *CreateQuickResponseInput {
	s.GroupingConfiguration = v
	return s
}

// SetIsActive sets the IsActive field's value.
func (s *CreateQuickResponseInput) SetIsActive(v bool) *CreateQuickResponseInput {
	s.IsActive = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *CreateQuickResponseInput) SetKnowledgeBaseId(v string) *CreateQuickResponseInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetLanguage sets the Language field's value.
func (s *CreateQuickResponseInput) SetLanguage(v string) *CreateQuickResponseInput {
	s.Language = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateQuickResponseInput) SetName(v string) *CreateQuickResponseInput {
	s.Name = &v
	return s
}

// SetShortcutKey sets the ShortcutKey field's value.
func (s *CreateQuickResponseInput) SetShortcutKey(v string) *CreateQuickResponseInput {
	s.ShortcutKey = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateQuickResponseInput) SetTags(v map[string]*string) *CreateQuickResponseInput {
	s.Tags = v
	return s
}

type CreateQuickResponseOutput struct {
	_ struct{} `type:"structure"`

	// The quick response.
	QuickResponse *QuickResponseData `locationName:"quickResponse" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateQuickResponseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateQuickResponseOutput) GoString() string {
	return s.String()
}

// SetQuickResponse sets the QuickResponse field's value.
func (s *CreateQuickResponseOutput) SetQuickResponse(v *QuickResponseData) *CreateQuickResponseOutput {
	s.QuickResponse = v
	return s
}

type CreateSessionInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The description.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The name of the session.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSessionInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *CreateSessionInput) SetAssistantId(v string) *CreateSessionInput {
	s.AssistantId = &v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateSessionInput) SetClientToken(v string) *CreateSessionInput {
	s.ClientToken = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateSessionInput) SetDescription(v string) *CreateSessionInput {
	s.Description = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateSessionInput) SetName(v string) *CreateSessionInput {
	s.Name = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateSessionInput) SetTags(v map[string]*string) *CreateSessionInput {
	s.Tags = v
	return s
}

type CreateSessionOutput struct {
	_ struct{} `type:"structure"`

	// The session.
	Session *SessionData `locationName:"session" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSessionOutput) GoString() string {
	return s.String()
}

// SetSession sets the Session field's value.
func (s *CreateSessionOutput) SetSession(v *SessionData) *CreateSessionOutput {
	s.Session = v
	return s
}

// Details about the data.
type DataDetails struct {
	_ struct{} `type:"structure"`

	// Details about the content data.
	ContentData *ContentDataDetails `locationName:"contentData" type:"structure"`

	// Details about the generative data.
	GenerativeData *GenerativeDataDetails `locationName:"generativeData" type:"structure"`

	// Details about the content data.
	SourceContentData *SourceContentDataDetails `locationName:"sourceContentData" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataDetails) GoString() string {
	return s.String()
}

// SetContentData sets the ContentData field's value.
func (s *DataDetails) SetContentData(v *ContentDataDetails) *DataDetails {
	s.ContentData = v
	return s
}

// SetGenerativeData sets the GenerativeData field's value.
func (s *DataDetails) SetGenerativeData(v *GenerativeDataDetails) *DataDetails {
	s.GenerativeData = v
	return s
}

// SetSourceContentData sets the SourceContentData field's value.
func (s *DataDetails) SetSourceContentData(v *SourceContentDataDetails) *DataDetails {
	s.SourceContentData = v
	return s
}

// Reference data.
type DataReference struct {
	_ struct{} `type:"structure"`

	// Reference information about the content.
	ContentReference *ContentReference `locationName:"contentReference" type:"structure"`

	// Reference information about the generative content.
	GenerativeReference *GenerativeReference `locationName:"generativeReference" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataReference) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataReference) GoString() string {
	return s.String()
}

// SetContentReference sets the ContentReference field's value.
func (s *DataReference) SetContentReference(v *ContentReference) *DataReference {
	s.ContentReference = v
	return s
}

// SetGenerativeReference sets the GenerativeReference field's value.
func (s *DataReference) SetGenerativeReference(v *GenerativeReference) *DataReference {
	s.GenerativeReference = v
	return s
}

// Summary of the data.
type DataSummary struct {
	_ struct{} `type:"structure"`

	// Details about the data.
	//
	// Details is a required field
	Details *DataDetails `locationName:"details" type:"structure" required:"true"`

	// Reference information about the content.
	//
	// Reference is a required field
	Reference *DataReference `locationName:"reference" type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataSummary) GoString() string {
	return s.String()
}

// SetDetails sets the Details field's value.
func (s *DataSummary) SetDetails(v *DataDetails) *DataSummary {
	s.Details = v
	return s
}

// SetReference sets the Reference field's value.
func (s *DataSummary) SetReference(v *DataReference) *DataSummary {
	s.Reference = v
	return s
}

type DeleteAssistantAssociationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the assistant association. Can be either the ID or the
	// ARN. URLs cannot contain the ARN.
	//
	// AssistantAssociationId is a required field
	AssistantAssociationId *string `location:"uri" locationName:"assistantAssociationId" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantAssociationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantAssociationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAssistantAssociationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAssistantAssociationInput"}
	if s.AssistantAssociationId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantAssociationId"))
	}
	if s.AssistantAssociationId != nil && len(*s.AssistantAssociationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantAssociationId", 1))
	}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantAssociationId sets the AssistantAssociationId field's value.
func (s *DeleteAssistantAssociationInput) SetAssistantAssociationId(v string) *DeleteAssistantAssociationInput {
	s.AssistantAssociationId = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *DeleteAssistantAssociationInput) SetAssistantId(v string) *DeleteAssistantAssociationInput {
	s.AssistantId = &v
	return s
}

type DeleteAssistantAssociationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantAssociationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantAssociationOutput) GoString() string {
	return s.String()
}

type DeleteAssistantInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAssistantInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAssistantInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *DeleteAssistantInput) SetAssistantId(v string) *DeleteAssistantInput {
	s.AssistantId = &v
	return s
}

type DeleteAssistantOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssistantOutput) GoString() string {
	return s.String()
}

type DeleteContentInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the content. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// ContentId is a required field
	ContentId *string `location:"uri" locationName:"contentId" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteContentInput"}
	if s.ContentId == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentId"))
	}
	if s.ContentId != nil && len(*s.ContentId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentId sets the ContentId field's value.
func (s *DeleteContentInput) SetContentId(v string) *DeleteContentInput {
	s.ContentId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *DeleteContentInput) SetKnowledgeBaseId(v string) *DeleteContentInput {
	s.KnowledgeBaseId = &v
	return s
}

type DeleteContentOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContentOutput) GoString() string {
	return s.String()
}

type DeleteImportJobInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the import job to be deleted.
	//
	// ImportJobId is a required field
	ImportJobId *string `location:"uri" locationName:"importJobId" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImportJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImportJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteImportJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteImportJobInput"}
	if s.ImportJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("ImportJobId"))
	}
	if s.ImportJobId != nil && len(*s.ImportJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImportJobId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImportJobId sets the ImportJobId field's value.
func (s *DeleteImportJobInput) SetImportJobId(v string) *DeleteImportJobInput {
	s.ImportJobId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *DeleteImportJobInput) SetKnowledgeBaseId(v string) *DeleteImportJobInput {
	s.KnowledgeBaseId = &v
	return s
}

type DeleteImportJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImportJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImportJobOutput) GoString() string {
	return s.String()
}

type DeleteKnowledgeBaseInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The knowledge base to delete content from. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteKnowledgeBaseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteKnowledgeBaseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteKnowledgeBaseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteKnowledgeBaseInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *DeleteKnowledgeBaseInput) SetKnowledgeBaseId(v string) *DeleteKnowledgeBaseInput {
	s.KnowledgeBaseId = &v
	return s
}

type DeleteKnowledgeBaseOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteKnowledgeBaseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteKnowledgeBaseOutput) GoString() string {
	return s.String()
}

type DeleteQuickResponseInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The knowledge base from which the quick response is deleted. The identifier
	// of the knowledge base. This should not be a QUICK_RESPONSES type knowledge
	// base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The identifier of the quick response to delete.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `location:"uri" locationName:"quickResponseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteQuickResponseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteQuickResponseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteQuickResponseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteQuickResponseInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.QuickResponseId == nil {
		invalidParams.Add(request.NewErrParamRequired("QuickResponseId"))
	}
	if s.QuickResponseId != nil && len(*s.QuickResponseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("QuickResponseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *DeleteQuickResponseInput) SetKnowledgeBaseId(v string) *DeleteQuickResponseInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *DeleteQuickResponseInput) SetQuickResponseId(v string) *DeleteQuickResponseInput {
	s.QuickResponseId = &v
	return s
}

type DeleteQuickResponseOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteQuickResponseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteQuickResponseOutput) GoString() string {
	return s.String()
}

// The document.
type Document struct {
	_ struct{} `type:"structure"`

	// A reference to the content resource.
	//
	// ContentReference is a required field
	ContentReference *ContentReference `locationName:"contentReference" type:"structure" required:"true"`

	// The excerpt from the document.
	Excerpt *DocumentText `locationName:"excerpt" type:"structure"`

	// The title of the document.
	Title *DocumentText `locationName:"title" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Document) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Document) GoString() string {
	return s.String()
}

// SetContentReference sets the ContentReference field's value.
func (s *Document) SetContentReference(v *ContentReference) *Document {
	s.ContentReference = v
	return s
}

// SetExcerpt sets the Excerpt field's value.
func (s *Document) SetExcerpt(v *DocumentText) *Document {
	s.Excerpt = v
	return s
}

// SetTitle sets the Title field's value.
func (s *Document) SetTitle(v *DocumentText) *Document {
	s.Title = v
	return s
}

// The text of the document.
type DocumentText struct {
	_ struct{} `type:"structure"`

	// Highlights in the document text.
	Highlights []*Highlight `locationName:"highlights" type:"list"`

	// Text in the document.
	//
	// Text is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DocumentText's
	// String and GoString methods.
	Text *string `locationName:"text" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DocumentText) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DocumentText) GoString() string {
	return s.String()
}

// SetHighlights sets the Highlights field's value.
func (s *DocumentText) SetHighlights(v []*Highlight) *DocumentText {
	s.Highlights = v
	return s
}

// SetText sets the Text field's value.
func (s *DocumentText) SetText(v string) *DocumentText {
	s.Text = &v
	return s
}

// The configuration information of the external data source.
type ExternalSourceConfiguration struct {
	_ struct{} `type:"structure"`

	// The configuration information of the external data source.
	//
	// Configuration is a required field
	Configuration *Configuration `locationName:"configuration" type:"structure" required:"true"`

	// The type of the external data source.
	//
	// Source is a required field
	Source *string `locationName:"source" type:"string" required:"true" enum:"ExternalSource"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExternalSourceConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExternalSourceConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ExternalSourceConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ExternalSourceConfiguration"}
	if s.Configuration == nil {
		invalidParams.Add(request.NewErrParamRequired("Configuration"))
	}
	if s.Source == nil {
		invalidParams.Add(request.NewErrParamRequired("Source"))
	}
	if s.Configuration != nil {
		if err := s.Configuration.Validate(); err != nil {
			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConfiguration sets the Configuration field's value.
func (s *ExternalSourceConfiguration) SetConfiguration(v *Configuration) *ExternalSourceConfiguration {
	s.Configuration = v
	return s
}

// SetSource sets the Source field's value.
func (s *ExternalSourceConfiguration) SetSource(v string) *ExternalSourceConfiguration {
	s.Source = &v
	return s
}

// A search filter.
type Filter struct {
	_ struct{} `type:"structure"`

	// The field on which to filter.
	//
	// Field is a required field
	Field *string `locationName:"field" type:"string" required:"true" enum:"FilterField"`

	// The operator to use for comparing the field’s value with the provided value.
	//
	// Operator is a required field
	Operator *string `locationName:"operator" type:"string" required:"true" enum:"FilterOperator"`

	// The desired field value on which to filter.
	//
	// Value is a required field
	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Filter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Filter"}
	if s.Field == nil {
		invalidParams.Add(request.NewErrParamRequired("Field"))
	}
	if s.Operator == nil {
		invalidParams.Add(request.NewErrParamRequired("Operator"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}
	if s.Value != nil && len(*s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetField sets the Field field's value.
func (s *Filter) SetField(v string) *Filter {
	s.Field = &v
	return s
}

// SetOperator sets the Operator field's value.
func (s *Filter) SetOperator(v string) *Filter {
	s.Operator = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Filter) SetValue(v string) *Filter {
	s.Value = &v
	return s
}

// The feedback information for a generative target type.
type GenerativeContentFeedbackData struct {
	_ struct{} `type:"structure"`

	// The relevance of the feedback.
	//
	// Relevance is a required field
	Relevance *string `locationName:"relevance" type:"string" required:"true" enum:"Relevance"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeContentFeedbackData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeContentFeedbackData) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GenerativeContentFeedbackData) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GenerativeContentFeedbackData"}
	if s.Relevance == nil {
		invalidParams.Add(request.NewErrParamRequired("Relevance"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRelevance sets the Relevance field's value.
func (s *GenerativeContentFeedbackData) SetRelevance(v string) *GenerativeContentFeedbackData {
	s.Relevance = &v
	return s
}

// Details about generative data.
type GenerativeDataDetails struct {
	_ struct{} `type:"structure"`

	// The LLM response.
	//
	// Completion is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GenerativeDataDetails's
	// String and GoString methods.
	//
	// Completion is a required field
	Completion *string `locationName:"completion" type:"string" required:"true" sensitive:"true"`

	// Details about the generative content ranking data.
	//
	// RankingData is a required field
	RankingData *RankingData `locationName:"rankingData" type:"structure" required:"true"`

	// The references used to generative the LLM response.
	//
	// References is a required field
	References []*DataSummary `locationName:"references" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeDataDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeDataDetails) GoString() string {
	return s.String()
}

// SetCompletion sets the Completion field's value.
func (s *GenerativeDataDetails) SetCompletion(v string) *GenerativeDataDetails {
	s.Completion = &v
	return s
}

// SetRankingData sets the RankingData field's value.
func (s *GenerativeDataDetails) SetRankingData(v *RankingData) *GenerativeDataDetails {
	s.RankingData = v
	return s
}

// SetReferences sets the References field's value.
func (s *GenerativeDataDetails) SetReferences(v []*DataSummary) *GenerativeDataDetails {
	s.References = v
	return s
}

// Reference information about generative content.
type GenerativeReference struct {
	_ struct{} `type:"structure"`

	// The identifier of the LLM model.
	GenerationId *string `locationName:"generationId" type:"string"`

	// The identifier of the LLM model.
	ModelId *string `locationName:"modelId" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeReference) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GenerativeReference) GoString() string {
	return s.String()
}

// SetGenerationId sets the GenerationId field's value.
func (s *GenerativeReference) SetGenerationId(v string) *GenerativeReference {
	s.GenerationId = &v
	return s
}

// SetModelId sets the ModelId field's value.
func (s *GenerativeReference) SetModelId(v string) *GenerativeReference {
	s.ModelId = &v
	return s
}

type GetAssistantAssociationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the assistant association. Can be either the ID or the
	// ARN. URLs cannot contain the ARN.
	//
	// AssistantAssociationId is a required field
	AssistantAssociationId *string `location:"uri" locationName:"assistantAssociationId" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantAssociationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantAssociationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAssistantAssociationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAssistantAssociationInput"}
	if s.AssistantAssociationId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantAssociationId"))
	}
	if s.AssistantAssociationId != nil && len(*s.AssistantAssociationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantAssociationId", 1))
	}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantAssociationId sets the AssistantAssociationId field's value.
func (s *GetAssistantAssociationInput) SetAssistantAssociationId(v string) *GetAssistantAssociationInput {
	s.AssistantAssociationId = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *GetAssistantAssociationInput) SetAssistantId(v string) *GetAssistantAssociationInput {
	s.AssistantId = &v
	return s
}

type GetAssistantAssociationOutput struct {
	_ struct{} `type:"structure"`

	// The assistant association.
	AssistantAssociation *AssistantAssociationData `locationName:"assistantAssociation" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantAssociationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantAssociationOutput) GoString() string {
	return s.String()
}

// SetAssistantAssociation sets the AssistantAssociation field's value.
func (s *GetAssistantAssociationOutput) SetAssistantAssociation(v *AssistantAssociationData) *GetAssistantAssociationOutput {
	s.AssistantAssociation = v
	return s
}

type GetAssistantInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAssistantInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAssistantInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *GetAssistantInput) SetAssistantId(v string) *GetAssistantInput {
	s.AssistantId = &v
	return s
}

type GetAssistantOutput struct {
	_ struct{} `type:"structure"`

	// Information about the assistant.
	Assistant *AssistantData `locationName:"assistant" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssistantOutput) GoString() string {
	return s.String()
}

// SetAssistant sets the Assistant field's value.
func (s *GetAssistantOutput) SetAssistant(v *AssistantData) *GetAssistantOutput {
	s.Assistant = v
	return s
}

type GetContentInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the content. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// ContentId is a required field
	ContentId *string `location:"uri" locationName:"contentId" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetContentInput"}
	if s.ContentId == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentId"))
	}
	if s.ContentId != nil && len(*s.ContentId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentId sets the ContentId field's value.
func (s *GetContentInput) SetContentId(v string) *GetContentInput {
	s.ContentId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *GetContentInput) SetKnowledgeBaseId(v string) *GetContentInput {
	s.KnowledgeBaseId = &v
	return s
}

type GetContentOutput struct {
	_ struct{} `type:"structure"`

	// The content.
	Content *ContentData `locationName:"content" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentOutput) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *GetContentOutput) SetContent(v *ContentData) *GetContentOutput {
	s.Content = v
	return s
}

type GetContentSummaryInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the content. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// ContentId is a required field
	ContentId *string `location:"uri" locationName:"contentId" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentSummaryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentSummaryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetContentSummaryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetContentSummaryInput"}
	if s.ContentId == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentId"))
	}
	if s.ContentId != nil && len(*s.ContentId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentId sets the ContentId field's value.
func (s *GetContentSummaryInput) SetContentId(v string) *GetContentSummaryInput {
	s.ContentId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *GetContentSummaryInput) SetKnowledgeBaseId(v string) *GetContentSummaryInput {
	s.KnowledgeBaseId = &v
	return s
}

type GetContentSummaryOutput struct {
	_ struct{} `type:"structure"`

	// The content summary.
	ContentSummary *ContentSummary `locationName:"contentSummary" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentSummaryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetContentSummaryOutput) GoString() string {
	return s.String()
}

// SetContentSummary sets the ContentSummary field's value.
func (s *GetContentSummaryOutput) SetContentSummary(v *ContentSummary) *GetContentSummaryOutput {
	s.ContentSummary = v
	return s
}

type GetImportJobInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the import job to retrieve.
	//
	// ImportJobId is a required field
	ImportJobId *string `location:"uri" locationName:"importJobId" type:"string" required:"true"`

	// The identifier of the knowledge base that the import job belongs to.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetImportJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetImportJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetImportJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetImportJobInput"}
	if s.ImportJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("ImportJobId"))
	}
	if s.ImportJobId != nil && len(*s.ImportJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImportJobId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImportJobId sets the ImportJobId field's value.
func (s *GetImportJobInput) SetImportJobId(v string) *GetImportJobInput {
	s.ImportJobId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *GetImportJobInput) SetKnowledgeBaseId(v string) *GetImportJobInput {
	s.KnowledgeBaseId = &v
	return s
}

type GetImportJobOutput struct {
	_ struct{} `type:"structure"`

	// The import job.
	ImportJob *ImportJobData `locationName:"importJob" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetImportJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetImportJobOutput) GoString() string {
	return s.String()
}

// SetImportJob sets the ImportJob field's value.
func (s *GetImportJobOutput) SetImportJob(v *ImportJobData) *GetImportJobOutput {
	s.ImportJob = v
	return s
}

type GetKnowledgeBaseInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetKnowledgeBaseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetKnowledgeBaseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetKnowledgeBaseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetKnowledgeBaseInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *GetKnowledgeBaseInput) SetKnowledgeBaseId(v string) *GetKnowledgeBaseInput {
	s.KnowledgeBaseId = &v
	return s
}

type GetKnowledgeBaseOutput struct {
	_ struct{} `type:"structure"`

	// The knowledge base.
	KnowledgeBase *KnowledgeBaseData `locationName:"knowledgeBase" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetKnowledgeBaseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetKnowledgeBaseOutput) GoString() string {
	return s.String()
}

// SetKnowledgeBase sets the KnowledgeBase field's value.
func (s *GetKnowledgeBaseOutput) SetKnowledgeBase(v *KnowledgeBaseData) *GetKnowledgeBaseOutput {
	s.KnowledgeBase = v
	return s
}

type GetQuickResponseInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should be a QUICK_RESPONSES type
	// knowledge base.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The identifier of the quick response.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `location:"uri" locationName:"quickResponseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetQuickResponseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetQuickResponseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetQuickResponseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetQuickResponseInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.QuickResponseId == nil {
		invalidParams.Add(request.NewErrParamRequired("QuickResponseId"))
	}
	if s.QuickResponseId != nil && len(*s.QuickResponseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("QuickResponseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *GetQuickResponseInput) SetKnowledgeBaseId(v string) *GetQuickResponseInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *GetQuickResponseInput) SetQuickResponseId(v string) *GetQuickResponseInput {
	s.QuickResponseId = &v
	return s
}

type GetQuickResponseOutput struct {
	_ struct{} `type:"structure"`

	// The quick response.
	QuickResponse *QuickResponseData `locationName:"quickResponse" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetQuickResponseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetQuickResponseOutput) GoString() string {
	return s.String()
}

// SetQuickResponse sets the QuickResponse field's value.
func (s *GetQuickResponseOutput) SetQuickResponse(v *QuickResponseData) *GetQuickResponseOutput {
	s.QuickResponse = v
	return s
}

type GetRecommendationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The identifier of the session. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// SessionId is a required field
	SessionId *string `location:"uri" locationName:"sessionId" type:"string" required:"true"`

	// The duration (in seconds) for which the call waits for a recommendation to
	// be made available before returning. If a recommendation is available, the
	// call returns sooner than WaitTimeSeconds. If no messages are available and
	// the wait time expires, the call returns successfully with an empty list.
	WaitTimeSeconds *int64 `location:"querystring" locationName:"waitTimeSeconds" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRecommendationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRecommendationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetRecommendationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetRecommendationsInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.SessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("SessionId"))
	}
	if s.SessionId != nil && len(*s.SessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *GetRecommendationsInput) SetAssistantId(v string) *GetRecommendationsInput {
	s.AssistantId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *GetRecommendationsInput) SetMaxResults(v int64) *GetRecommendationsInput {
	s.MaxResults = &v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *GetRecommendationsInput) SetSessionId(v string) *GetRecommendationsInput {
	s.SessionId = &v
	return s
}

// SetWaitTimeSeconds sets the WaitTimeSeconds field's value.
func (s *GetRecommendationsInput) SetWaitTimeSeconds(v int64) *GetRecommendationsInput {
	s.WaitTimeSeconds = &v
	return s
}

type GetRecommendationsOutput struct {
	_ struct{} `type:"structure"`

	// The recommendations.
	//
	// Recommendations is a required field
	Recommendations []*RecommendationData `locationName:"recommendations" type:"list" required:"true"`

	// The triggers corresponding to recommendations.
	Triggers []*RecommendationTrigger `locationName:"triggers" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRecommendationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRecommendationsOutput) GoString() string {
	return s.String()
}

// SetRecommendations sets the Recommendations field's value.
func (s *GetRecommendationsOutput) SetRecommendations(v []*RecommendationData) *GetRecommendationsOutput {
	s.Recommendations = v
	return s
}

// SetTriggers sets the Triggers field's value.
func (s *GetRecommendationsOutput) SetTriggers(v []*RecommendationTrigger) *GetRecommendationsOutput {
	s.Triggers = v
	return s
}

type GetSessionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The identifier of the session. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// SessionId is a required field
	SessionId *string `location:"uri" locationName:"sessionId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSessionInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.SessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("SessionId"))
	}
	if s.SessionId != nil && len(*s.SessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *GetSessionInput) SetAssistantId(v string) *GetSessionInput {
	s.AssistantId = &v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *GetSessionInput) SetSessionId(v string) *GetSessionInput {
	s.SessionId = &v
	return s
}

type GetSessionOutput struct {
	_ struct{} `type:"structure"`

	// The session.
	Session *SessionData `locationName:"session" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSessionOutput) GoString() string {
	return s.String()
}

// SetSession sets the Session field's value.
func (s *GetSessionOutput) SetSession(v *SessionData) *GetSessionOutput {
	s.Session = v
	return s
}

// The configuration information of the grouping of Amazon Q users.
type GroupingConfiguration struct {
	_ struct{} `type:"structure"`

	// The criteria used for grouping Amazon Q users.
	//
	// The following is the list of supported criteria values.
	//
	//    * RoutingProfileArn: Grouping the users by their Amazon Connect routing
	//    profile ARN (https://docs.aws.amazon.com/connect/latest/APIReference/API_RoutingProfile.html).
	//    User should have SearchRoutingProfile (https://docs.aws.amazon.com/connect/latest/APIReference/API_SearchRoutingProfiles.html)
	//    and DescribeRoutingProfile (https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeRoutingProfile.html)
	//    permissions when setting criteria to this value.
	//
	// Criteria is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GroupingConfiguration's
	// String and GoString methods.
	Criteria *string `locationName:"criteria" min:"1" type:"string" sensitive:"true"`

	// The list of values that define different groups of Amazon Q users.
	//
	//    * When setting criteria to RoutingProfileArn, you need to provide a list
	//    of ARNs of Amazon Connect routing profiles (https://docs.aws.amazon.com/connect/latest/APIReference/API_RoutingProfile.html)
	//    as values of this parameter.
	Values []*string `locationName:"values" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GroupingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GroupingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GroupingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GroupingConfiguration"}
	if s.Criteria != nil && len(*s.Criteria) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Criteria", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCriteria sets the Criteria field's value.
func (s *GroupingConfiguration) SetCriteria(v string) *GroupingConfiguration {
	s.Criteria = &v
	return s
}

// SetValues sets the Values field's value.
func (s *GroupingConfiguration) SetValues(v []*string) *GroupingConfiguration {
	s.Values = v
	return s
}

// Offset specification to describe highlighting of document excerpts for rendering
// search results and recommendations.
type Highlight struct {
	_ struct{} `type:"structure"`

	// The offset for the start of the highlight.
	BeginOffsetInclusive *int64 `locationName:"beginOffsetInclusive" type:"integer"`

	// The offset for the end of the highlight.
	EndOffsetExclusive *int64 `locationName:"endOffsetExclusive" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Highlight) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Highlight) GoString() string {
	return s.String()
}

// SetBeginOffsetInclusive sets the BeginOffsetInclusive field's value.
func (s *Highlight) SetBeginOffsetInclusive(v int64) *Highlight {
	s.BeginOffsetInclusive = &v
	return s
}

// SetEndOffsetExclusive sets the EndOffsetExclusive field's value.
func (s *Highlight) SetEndOffsetExclusive(v int64) *Highlight {
	s.EndOffsetExclusive = &v
	return s
}

// Summary information about the import job.
type ImportJobData struct {
	_ struct{} `type:"structure"`

	// The timestamp when the import job was created.
	//
	// CreatedTime is a required field
	CreatedTime *time.Time `locationName:"createdTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The configuration information of the external data source.
	ExternalSourceConfiguration *ExternalSourceConfiguration `locationName:"externalSourceConfiguration" type:"structure"`

	// The link to donwload the information of resource data that failed to be imported.
	//
	// FailedRecordReport is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ImportJobData's
	// String and GoString methods.
	FailedRecordReport *string `locationName:"failedRecordReport" min:"1" type:"string" sensitive:"true"`

	// The identifier of the import job.
	//
	// ImportJobId is a required field
	ImportJobId *string `locationName:"importJobId" type:"string" required:"true"`

	// The type of the import job.
	//
	// ImportJobType is a required field
	ImportJobType *string `locationName:"importJobType" type:"string" required:"true" enum:"ImportJobType"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The timestamp when the import job data was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `locationName:"lastModifiedTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The metadata fields of the imported Amazon Q resources.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// The status of the import job.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"ImportJobStatus"`

	// A pointer to the uploaded asset. This value is returned by StartContentUpload
	// (https://docs.aws.amazon.com/wisdom/latest/APIReference/API_StartContentUpload.html).
	//
	// UploadId is a required field
	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`

	// The download link to the resource file that is uploaded to the import job.
	//
	// Url is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ImportJobData's
	// String and GoString methods.
	//
	// Url is a required field
	Url *string `locationName:"url" min:"1" type:"string" required:"true" sensitive:"true"`

	// The expiration time of the URL as an epoch timestamp.
	//
	// UrlExpiry is a required field
	UrlExpiry *time.Time `locationName:"urlExpiry" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportJobData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportJobData) GoString() string {
	return s.String()
}

// SetCreatedTime sets the CreatedTime field's value.
func (s *ImportJobData) SetCreatedTime(v time.Time) *ImportJobData {
	s.CreatedTime = &v
	return s
}

// SetExternalSourceConfiguration sets the ExternalSourceConfiguration field's value.
func (s *ImportJobData) SetExternalSourceConfiguration(v *ExternalSourceConfiguration) *ImportJobData {
	s.ExternalSourceConfiguration = v
	return s
}

// SetFailedRecordReport sets the FailedRecordReport field's value.
func (s *ImportJobData) SetFailedRecordReport(v string) *ImportJobData {
	s.FailedRecordReport = &v
	return s
}

// SetImportJobId sets the ImportJobId field's value.
func (s *ImportJobData) SetImportJobId(v string) *ImportJobData {
	s.ImportJobId = &v
	return s
}

// SetImportJobType sets the ImportJobType field's value.
func (s *ImportJobData) SetImportJobType(v string) *ImportJobData {
	s.ImportJobType = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *ImportJobData) SetKnowledgeBaseArn(v string) *ImportJobData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ImportJobData) SetKnowledgeBaseId(v string) *ImportJobData {
	s.KnowledgeBaseId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ImportJobData) SetLastModifiedTime(v time.Time) *ImportJobData {
	s.LastModifiedTime = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ImportJobData) SetMetadata(v map[string]*string) *ImportJobData {
	s.Metadata = v
	return s
}

// SetStatus sets the Status field's value.
func (s *ImportJobData) SetStatus(v string) *ImportJobData {
	s.Status = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *ImportJobData) SetUploadId(v string) *ImportJobData {
	s.UploadId = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *ImportJobData) SetUrl(v string) *ImportJobData {
	s.Url = &v
	return s
}

// SetUrlExpiry sets the UrlExpiry field's value.
func (s *ImportJobData) SetUrlExpiry(v time.Time) *ImportJobData {
	s.UrlExpiry = &v
	return s
}

// Summary information about the import job.
type ImportJobSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp when the import job was created.
	//
	// CreatedTime is a required field
	CreatedTime *time.Time `locationName:"createdTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The configuration information of the external source that the resource data
	// are imported from.
	ExternalSourceConfiguration *ExternalSourceConfiguration `locationName:"externalSourceConfiguration" type:"structure"`

	// The identifier of the import job.
	//
	// ImportJobId is a required field
	ImportJobId *string `locationName:"importJobId" type:"string" required:"true"`

	// The type of import job.
	//
	// ImportJobType is a required field
	ImportJobType *string `locationName:"importJobType" type:"string" required:"true" enum:"ImportJobType"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The timestamp when the import job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `locationName:"lastModifiedTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The metadata fields of the imported Amazon Q resources.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// The status of the import job.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"ImportJobStatus"`

	// A pointer to the uploaded asset. This value is returned by StartContentUpload
	// (https://docs.aws.amazon.com/wisdom/latest/APIReference/API_StartContentUpload.html).
	//
	// UploadId is a required field
	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportJobSummary) GoString() string {
	return s.String()
}

// SetCreatedTime sets the CreatedTime field's value.
func (s *ImportJobSummary) SetCreatedTime(v time.Time) *ImportJobSummary {
	s.CreatedTime = &v
	return s
}

// SetExternalSourceConfiguration sets the ExternalSourceConfiguration field's value.
func (s *ImportJobSummary) SetExternalSourceConfiguration(v *ExternalSourceConfiguration) *ImportJobSummary {
	s.ExternalSourceConfiguration = v
	return s
}

// SetImportJobId sets the ImportJobId field's value.
func (s *ImportJobSummary) SetImportJobId(v string) *ImportJobSummary {
	s.ImportJobId = &v
	return s
}

// SetImportJobType sets the ImportJobType field's value.
func (s *ImportJobSummary) SetImportJobType(v string) *ImportJobSummary {
	s.ImportJobType = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *ImportJobSummary) SetKnowledgeBaseArn(v string) *ImportJobSummary {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ImportJobSummary) SetKnowledgeBaseId(v string) *ImportJobSummary {
	s.KnowledgeBaseId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ImportJobSummary) SetLastModifiedTime(v time.Time) *ImportJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ImportJobSummary) SetMetadata(v map[string]*string) *ImportJobSummary {
	s.Metadata = v
	return s
}

// SetStatus sets the Status field's value.
func (s *ImportJobSummary) SetStatus(v string) *ImportJobSummary {
	s.Status = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *ImportJobSummary) SetUploadId(v string) *ImportJobSummary {
	s.UploadId = &v
	return s
}

// Association information about the knowledge base.
type KnowledgeBaseAssociationData struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseAssociationData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseAssociationData) GoString() string {
	return s.String()
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *KnowledgeBaseAssociationData) SetKnowledgeBaseArn(v string) *KnowledgeBaseAssociationData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *KnowledgeBaseAssociationData) SetKnowledgeBaseId(v string) *KnowledgeBaseAssociationData {
	s.KnowledgeBaseId = &v
	return s
}

// Information about the knowledge base.
type KnowledgeBaseData struct {
	_ struct{} `type:"structure"`

	// The description.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The type of knowledge base.
	//
	// KnowledgeBaseType is a required field
	KnowledgeBaseType *string `locationName:"knowledgeBaseType" type:"string" required:"true" enum:"KnowledgeBaseType"`

	// An epoch timestamp indicating the most recent content modification inside
	// the knowledge base. If no content exists in a knowledge base, this value
	// is unset.
	LastContentModificationTime *time.Time `locationName:"lastContentModificationTime" type:"timestamp" timestampFormat:"unixTimestamp"`

	// The name of the knowledge base.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// Information about how to render the content.
	RenderingConfiguration *RenderingConfiguration `locationName:"renderingConfiguration" type:"structure"`

	// The configuration information for the customer managed key used for encryption.
	//
	// This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey,
	// kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using
	// the key to invoke Amazon Q.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// Source configuration information about the knowledge base.
	SourceConfiguration *SourceConfiguration `locationName:"sourceConfiguration" type:"structure"`

	// The status of the knowledge base.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"KnowledgeBaseStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseData) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *KnowledgeBaseData) SetDescription(v string) *KnowledgeBaseData {
	s.Description = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *KnowledgeBaseData) SetKnowledgeBaseArn(v string) *KnowledgeBaseData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *KnowledgeBaseData) SetKnowledgeBaseId(v string) *KnowledgeBaseData {
	s.KnowledgeBaseId = &v
	return s
}

// SetKnowledgeBaseType sets the KnowledgeBaseType field's value.
func (s *KnowledgeBaseData) SetKnowledgeBaseType(v string) *KnowledgeBaseData {
	s.KnowledgeBaseType = &v
	return s
}

// SetLastContentModificationTime sets the LastContentModificationTime field's value.
func (s *KnowledgeBaseData) SetLastContentModificationTime(v time.Time) *KnowledgeBaseData {
	s.LastContentModificationTime = &v
	return s
}

// SetName sets the Name field's value.
func (s *KnowledgeBaseData) SetName(v string) *KnowledgeBaseData {
	s.Name = &v
	return s
}

// SetRenderingConfiguration sets the RenderingConfiguration field's value.
func (s *KnowledgeBaseData) SetRenderingConfiguration(v *RenderingConfiguration) *KnowledgeBaseData {
	s.RenderingConfiguration = v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *KnowledgeBaseData) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *KnowledgeBaseData {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetSourceConfiguration sets the SourceConfiguration field's value.
func (s *KnowledgeBaseData) SetSourceConfiguration(v *SourceConfiguration) *KnowledgeBaseData {
	s.SourceConfiguration = v
	return s
}

// SetStatus sets the Status field's value.
func (s *KnowledgeBaseData) SetStatus(v string) *KnowledgeBaseData {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *KnowledgeBaseData) SetTags(v map[string]*string) *KnowledgeBaseData {
	s.Tags = v
	return s
}

// Summary information about the knowledge base.
type KnowledgeBaseSummary struct {
	_ struct{} `type:"structure"`

	// The description of the knowledge base.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The type of knowledge base.
	//
	// KnowledgeBaseType is a required field
	KnowledgeBaseType *string `locationName:"knowledgeBaseType" type:"string" required:"true" enum:"KnowledgeBaseType"`

	// The name of the knowledge base.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// Information about how to render the content.
	RenderingConfiguration *RenderingConfiguration `locationName:"renderingConfiguration" type:"structure"`

	// The configuration information for the customer managed key used for encryption.
	//
	// This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey,
	// kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using
	// the key to invoke Amazon Q.
	//
	// For more information about setting up a customer managed key for Amazon Q,
	// see Enable Amazon Q in Connect for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"`

	// Configuration information about the external data source.
	SourceConfiguration *SourceConfiguration `locationName:"sourceConfiguration" type:"structure"`

	// The status of the knowledge base summary.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"KnowledgeBaseStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KnowledgeBaseSummary) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *KnowledgeBaseSummary) SetDescription(v string) *KnowledgeBaseSummary {
	s.Description = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *KnowledgeBaseSummary) SetKnowledgeBaseArn(v string) *KnowledgeBaseSummary {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *KnowledgeBaseSummary) SetKnowledgeBaseId(v string) *KnowledgeBaseSummary {
	s.KnowledgeBaseId = &v
	return s
}

// SetKnowledgeBaseType sets the KnowledgeBaseType field's value.
func (s *KnowledgeBaseSummary) SetKnowledgeBaseType(v string) *KnowledgeBaseSummary {
	s.KnowledgeBaseType = &v
	return s
}

// SetName sets the Name field's value.
func (s *KnowledgeBaseSummary) SetName(v string) *KnowledgeBaseSummary {
	s.Name = &v
	return s
}

// SetRenderingConfiguration sets the RenderingConfiguration field's value.
func (s *KnowledgeBaseSummary) SetRenderingConfiguration(v *RenderingConfiguration) *KnowledgeBaseSummary {
	s.RenderingConfiguration = v
	return s
}

// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
func (s *KnowledgeBaseSummary) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *KnowledgeBaseSummary {
	s.ServerSideEncryptionConfiguration = v
	return s
}

// SetSourceConfiguration sets the SourceConfiguration field's value.
func (s *KnowledgeBaseSummary) SetSourceConfiguration(v *SourceConfiguration) *KnowledgeBaseSummary {
	s.SourceConfiguration = v
	return s
}

// SetStatus sets the Status field's value.
func (s *KnowledgeBaseSummary) SetStatus(v string) *KnowledgeBaseSummary {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *KnowledgeBaseSummary) SetTags(v map[string]*string) *KnowledgeBaseSummary {
	s.Tags = v
	return s
}

type ListAssistantAssociationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantAssociationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantAssociationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAssistantAssociationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAssistantAssociationsInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *ListAssistantAssociationsInput) SetAssistantId(v string) *ListAssistantAssociationsInput {
	s.AssistantId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAssistantAssociationsInput) SetMaxResults(v int64) *ListAssistantAssociationsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssistantAssociationsInput) SetNextToken(v string) *ListAssistantAssociationsInput {
	s.NextToken = &v
	return s
}

type ListAssistantAssociationsOutput struct {
	_ struct{} `type:"structure"`

	// Summary information about assistant associations.
	//
	// AssistantAssociationSummaries is a required field
	AssistantAssociationSummaries []*AssistantAssociationSummary `locationName:"assistantAssociationSummaries" type:"list" required:"true"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantAssociationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantAssociationsOutput) GoString() string {
	return s.String()
}

// SetAssistantAssociationSummaries sets the AssistantAssociationSummaries field's value.
func (s *ListAssistantAssociationsOutput) SetAssistantAssociationSummaries(v []*AssistantAssociationSummary) *ListAssistantAssociationsOutput {
	s.AssistantAssociationSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssistantAssociationsOutput) SetNextToken(v string) *ListAssistantAssociationsOutput {
	s.NextToken = &v
	return s
}

type ListAssistantsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAssistantsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAssistantsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAssistantsInput) SetMaxResults(v int64) *ListAssistantsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssistantsInput) SetNextToken(v string) *ListAssistantsInput {
	s.NextToken = &v
	return s
}

type ListAssistantsOutput struct {
	_ struct{} `type:"structure"`

	// Information about the assistants.
	//
	// AssistantSummaries is a required field
	AssistantSummaries []*AssistantSummary `locationName:"assistantSummaries" type:"list" required:"true"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssistantsOutput) GoString() string {
	return s.String()
}

// SetAssistantSummaries sets the AssistantSummaries field's value.
func (s *ListAssistantsOutput) SetAssistantSummaries(v []*AssistantSummary) *ListAssistantsOutput {
	s.AssistantSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssistantsOutput) SetNextToken(v string) *ListAssistantsOutput {
	s.NextToken = &v
	return s
}

type ListContentsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListContentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListContentsInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ListContentsInput) SetKnowledgeBaseId(v string) *ListContentsInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListContentsInput) SetMaxResults(v int64) *ListContentsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListContentsInput) SetNextToken(v string) *ListContentsInput {
	s.NextToken = &v
	return s
}

type ListContentsOutput struct {
	_ struct{} `type:"structure"`

	// Information about the content.
	//
	// ContentSummaries is a required field
	ContentSummaries []*ContentSummary `locationName:"contentSummaries" type:"list" required:"true"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContentsOutput) GoString() string {
	return s.String()
}

// SetContentSummaries sets the ContentSummaries field's value.
func (s *ListContentsOutput) SetContentSummaries(v []*ContentSummary) *ListContentsOutput {
	s.ContentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListContentsOutput) SetNextToken(v string) *ListContentsOutput {
	s.NextToken = &v
	return s
}

type ListImportJobsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImportJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImportJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListImportJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListImportJobsInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ListImportJobsInput) SetKnowledgeBaseId(v string) *ListImportJobsInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListImportJobsInput) SetMaxResults(v int64) *ListImportJobsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImportJobsInput) SetNextToken(v string) *ListImportJobsInput {
	s.NextToken = &v
	return s
}

type ListImportJobsOutput struct {
	_ struct{} `type:"structure"`

	// Summary information about the import jobs.
	//
	// ImportJobSummaries is a required field
	ImportJobSummaries []*ImportJobSummary `locationName:"importJobSummaries" type:"list" required:"true"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImportJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImportJobsOutput) GoString() string {
	return s.String()
}

// SetImportJobSummaries sets the ImportJobSummaries field's value.
func (s *ListImportJobsOutput) SetImportJobSummaries(v []*ImportJobSummary) *ListImportJobsOutput {
	s.ImportJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImportJobsOutput) SetNextToken(v string) *ListImportJobsOutput {
	s.NextToken = &v
	return s
}

type ListKnowledgeBasesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListKnowledgeBasesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListKnowledgeBasesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListKnowledgeBasesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListKnowledgeBasesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListKnowledgeBasesInput) SetMaxResults(v int64) *ListKnowledgeBasesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListKnowledgeBasesInput) SetNextToken(v string) *ListKnowledgeBasesInput {
	s.NextToken = &v
	return s
}

type ListKnowledgeBasesOutput struct {
	_ struct{} `type:"structure"`

	// Information about the knowledge bases.
	//
	// KnowledgeBaseSummaries is a required field
	KnowledgeBaseSummaries []*KnowledgeBaseSummary `locationName:"knowledgeBaseSummaries" type:"list" required:"true"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListKnowledgeBasesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListKnowledgeBasesOutput) GoString() string {
	return s.String()
}

// SetKnowledgeBaseSummaries sets the KnowledgeBaseSummaries field's value.
func (s *ListKnowledgeBasesOutput) SetKnowledgeBaseSummaries(v []*KnowledgeBaseSummary) *ListKnowledgeBasesOutput {
	s.KnowledgeBaseSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListKnowledgeBasesOutput) SetNextToken(v string) *ListKnowledgeBasesOutput {
	s.NextToken = &v
	return s
}

type ListQuickResponsesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListQuickResponsesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListQuickResponsesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListQuickResponsesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListQuickResponsesInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *ListQuickResponsesInput) SetKnowledgeBaseId(v string) *ListQuickResponsesInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListQuickResponsesInput) SetMaxResults(v int64) *ListQuickResponsesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListQuickResponsesInput) SetNextToken(v string) *ListQuickResponsesInput {
	s.NextToken = &v
	return s
}

type ListQuickResponsesOutput struct {
	_ struct{} `type:"structure"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Summary information about the quick responses.
	//
	// QuickResponseSummaries is a required field
	QuickResponseSummaries []*QuickResponseSummary `locationName:"quickResponseSummaries" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListQuickResponsesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListQuickResponsesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListQuickResponsesOutput) SetNextToken(v string) *ListQuickResponsesOutput {
	s.NextToken = &v
	return s
}

// SetQuickResponseSummaries sets the QuickResponseSummaries field's value.
func (s *ListQuickResponsesOutput) SetQuickResponseSummaries(v []*QuickResponseSummary) *ListQuickResponsesOutput {
	s.QuickResponseSummaries = v
	return s
}

type ListTagsForResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTagsForResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
	s.ResourceArn = &v
	return s
}

type ListTagsForResourceOutput struct {
	_ struct{} `type:"structure"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
	s.Tags = v
	return s
}

// An error occurred when creating a recommendation.
type NotifyRecommendationsReceivedError struct {
	_ struct{} `type:"structure"`

	// A recommendation is causing an error.
	Message *string `locationName:"message" type:"string"`

	// The identifier of the recommendation that is in error.
	RecommendationId *string `locationName:"recommendationId" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedError) GoString() string {
	return s.String()
}

// SetMessage sets the Message field's value.
func (s *NotifyRecommendationsReceivedError) SetMessage(v string) *NotifyRecommendationsReceivedError {
	s.Message = &v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *NotifyRecommendationsReceivedError) SetRecommendationId(v string) *NotifyRecommendationsReceivedError {
	s.RecommendationId = &v
	return s
}

type NotifyRecommendationsReceivedInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The identifiers of the recommendations.
	//
	// RecommendationIds is a required field
	RecommendationIds []*string `locationName:"recommendationIds" type:"list" required:"true"`

	// The identifier of the session. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// SessionId is a required field
	SessionId *string `location:"uri" locationName:"sessionId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NotifyRecommendationsReceivedInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NotifyRecommendationsReceivedInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.RecommendationIds == nil {
		invalidParams.Add(request.NewErrParamRequired("RecommendationIds"))
	}
	if s.SessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("SessionId"))
	}
	if s.SessionId != nil && len(*s.SessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *NotifyRecommendationsReceivedInput) SetAssistantId(v string) *NotifyRecommendationsReceivedInput {
	s.AssistantId = &v
	return s
}

// SetRecommendationIds sets the RecommendationIds field's value.
func (s *NotifyRecommendationsReceivedInput) SetRecommendationIds(v []*string) *NotifyRecommendationsReceivedInput {
	s.RecommendationIds = v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *NotifyRecommendationsReceivedInput) SetSessionId(v string) *NotifyRecommendationsReceivedInput {
	s.SessionId = &v
	return s
}

type NotifyRecommendationsReceivedOutput struct {
	_ struct{} `type:"structure"`

	// The identifiers of recommendations that are causing errors.
	Errors []*NotifyRecommendationsReceivedError `locationName:"errors" type:"list"`

	// The identifiers of the recommendations.
	RecommendationIds []*string `locationName:"recommendationIds" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyRecommendationsReceivedOutput) GoString() string {
	return s.String()
}

// SetErrors sets the Errors field's value.
func (s *NotifyRecommendationsReceivedOutput) SetErrors(v []*NotifyRecommendationsReceivedError) *NotifyRecommendationsReceivedOutput {
	s.Errors = v
	return s
}

// SetRecommendationIds sets the RecommendationIds field's value.
func (s *NotifyRecommendationsReceivedOutput) SetRecommendationIds(v []*string) *NotifyRecommendationsReceivedOutput {
	s.RecommendationIds = v
	return s
}

// The provided revisionId does not match, indicating the content has been modified
// since it was last read.
type PreconditionFailedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PreconditionFailedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PreconditionFailedException) GoString() string {
	return s.String()
}

func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
	return &PreconditionFailedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *PreconditionFailedException) Code() string {
	return "PreconditionFailedException"
}

// Message returns the exception's message.
func (s *PreconditionFailedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *PreconditionFailedException) OrigErr() error {
	return nil
}

func (s *PreconditionFailedException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *PreconditionFailedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *PreconditionFailedException) RequestID() string {
	return s.RespMetadata.RequestID
}

type PutFeedbackInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// Information about the feedback provided.
	//
	// ContentFeedback is a required field
	ContentFeedback *ContentFeedbackData `locationName:"contentFeedback" type:"structure" required:"true"`

	// The identifier of the feedback target.
	//
	// TargetId is a required field
	TargetId *string `locationName:"targetId" type:"string" required:"true"`

	// The type of the feedback target.
	//
	// TargetType is a required field
	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFeedbackInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFeedbackInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutFeedbackInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutFeedbackInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.ContentFeedback == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentFeedback"))
	}
	if s.TargetId == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetId"))
	}
	if s.TargetType == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetType"))
	}
	if s.ContentFeedback != nil {
		if err := s.ContentFeedback.Validate(); err != nil {
			invalidParams.AddNested("ContentFeedback", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *PutFeedbackInput) SetAssistantId(v string) *PutFeedbackInput {
	s.AssistantId = &v
	return s
}

// SetContentFeedback sets the ContentFeedback field's value.
func (s *PutFeedbackInput) SetContentFeedback(v *ContentFeedbackData) *PutFeedbackInput {
	s.ContentFeedback = v
	return s
}

// SetTargetId sets the TargetId field's value.
func (s *PutFeedbackInput) SetTargetId(v string) *PutFeedbackInput {
	s.TargetId = &v
	return s
}

// SetTargetType sets the TargetType field's value.
func (s *PutFeedbackInput) SetTargetType(v string) *PutFeedbackInput {
	s.TargetType = &v
	return s
}

type PutFeedbackOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// Information about the feedback provided.
	//
	// ContentFeedback is a required field
	ContentFeedback *ContentFeedbackData `locationName:"contentFeedback" type:"structure" required:"true"`

	// The identifier of the feedback target.
	//
	// TargetId is a required field
	TargetId *string `locationName:"targetId" type:"string" required:"true"`

	// The type of the feedback target.
	//
	// TargetType is a required field
	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFeedbackOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFeedbackOutput) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *PutFeedbackOutput) SetAssistantArn(v string) *PutFeedbackOutput {
	s.AssistantArn = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *PutFeedbackOutput) SetAssistantId(v string) *PutFeedbackOutput {
	s.AssistantId = &v
	return s
}

// SetContentFeedback sets the ContentFeedback field's value.
func (s *PutFeedbackOutput) SetContentFeedback(v *ContentFeedbackData) *PutFeedbackOutput {
	s.ContentFeedback = v
	return s
}

// SetTargetId sets the TargetId field's value.
func (s *PutFeedbackOutput) SetTargetId(v string) *PutFeedbackOutput {
	s.TargetId = &v
	return s
}

// SetTargetType sets the TargetType field's value.
func (s *PutFeedbackOutput) SetTargetType(v string) *PutFeedbackOutput {
	s.TargetType = &v
	return s
}

type QueryAssistantInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Information about how to query content.
	QueryCondition []*QueryCondition `locationName:"queryCondition" type:"list"`

	// The text to search for.
	//
	// QueryText is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QueryAssistantInput's
	// String and GoString methods.
	//
	// QueryText is a required field
	QueryText *string `locationName:"queryText" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon Q session. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	SessionId *string `locationName:"sessionId" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryAssistantInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryAssistantInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QueryAssistantInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QueryAssistantInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.QueryText == nil {
		invalidParams.Add(request.NewErrParamRequired("QueryText"))
	}
	if s.QueryCondition != nil {
		for i, v := range s.QueryCondition {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "QueryCondition", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *QueryAssistantInput) SetAssistantId(v string) *QueryAssistantInput {
	s.AssistantId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *QueryAssistantInput) SetMaxResults(v int64) *QueryAssistantInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *QueryAssistantInput) SetNextToken(v string) *QueryAssistantInput {
	s.NextToken = &v
	return s
}

// SetQueryCondition sets the QueryCondition field's value.
func (s *QueryAssistantInput) SetQueryCondition(v []*QueryCondition) *QueryAssistantInput {
	s.QueryCondition = v
	return s
}

// SetQueryText sets the QueryText field's value.
func (s *QueryAssistantInput) SetQueryText(v string) *QueryAssistantInput {
	s.QueryText = &v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *QueryAssistantInput) SetSessionId(v string) *QueryAssistantInput {
	s.SessionId = &v
	return s
}

type QueryAssistantOutput struct {
	_ struct{} `type:"structure"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// The results of the query.
	//
	// Results is a required field
	Results []*ResultData `locationName:"results" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryAssistantOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryAssistantOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *QueryAssistantOutput) SetNextToken(v string) *QueryAssistantOutput {
	s.NextToken = &v
	return s
}

// SetResults sets the Results field's value.
func (s *QueryAssistantOutput) SetResults(v []*ResultData) *QueryAssistantOutput {
	s.Results = v
	return s
}

// Information about how to query content.
type QueryCondition struct {
	_ struct{} `type:"structure"`

	// The condition for the query.
	Single *QueryConditionItem `locationName:"single" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryCondition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryCondition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QueryCondition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QueryCondition"}
	if s.Single != nil {
		if err := s.Single.Validate(); err != nil {
			invalidParams.AddNested("Single", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSingle sets the Single field's value.
func (s *QueryCondition) SetSingle(v *QueryConditionItem) *QueryCondition {
	s.Single = v
	return s
}

// The condition for the query.
type QueryConditionItem struct {
	_ struct{} `type:"structure"`

	// The comparison operator for query condition to query on.
	//
	// Comparator is a required field
	Comparator *string `locationName:"comparator" type:"string" required:"true" enum:"QueryConditionComparisonOperator"`

	// The name of the field for query condition to query on.
	//
	// Field is a required field
	Field *string `locationName:"field" type:"string" required:"true" enum:"QueryConditionFieldName"`

	// The value for the query condition to query on.
	//
	// Value is a required field
	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryConditionItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryConditionItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QueryConditionItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QueryConditionItem"}
	if s.Comparator == nil {
		invalidParams.Add(request.NewErrParamRequired("Comparator"))
	}
	if s.Field == nil {
		invalidParams.Add(request.NewErrParamRequired("Field"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}
	if s.Value != nil && len(*s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetComparator sets the Comparator field's value.
func (s *QueryConditionItem) SetComparator(v string) *QueryConditionItem {
	s.Comparator = &v
	return s
}

// SetField sets the Field field's value.
func (s *QueryConditionItem) SetField(v string) *QueryConditionItem {
	s.Field = &v
	return s
}

// SetValue sets the Value field's value.
func (s *QueryConditionItem) SetValue(v string) *QueryConditionItem {
	s.Value = &v
	return s
}

// Data associated with the QUERY RecommendationTriggerType.
type QueryRecommendationTriggerData struct {
	_ struct{} `type:"structure"`

	// The text associated with the recommendation trigger.
	//
	// Text is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QueryRecommendationTriggerData's
	// String and GoString methods.
	Text *string `locationName:"text" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryRecommendationTriggerData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryRecommendationTriggerData) GoString() string {
	return s.String()
}

// SetText sets the Text field's value.
func (s *QueryRecommendationTriggerData) SetText(v string) *QueryRecommendationTriggerData {
	s.Text = &v
	return s
}

// The container quick response content.
type QuickResponseContentProvider struct {
	_ struct{} `type:"structure"`

	// The content of the quick response.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QuickResponseContentProvider's
	// String and GoString methods.
	Content *string `locationName:"content" min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseContentProvider) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseContentProvider) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *QuickResponseContentProvider) SetContent(v string) *QuickResponseContentProvider {
	s.Content = &v
	return s
}

// The content of the quick response stored in different media types.
type QuickResponseContents struct {
	_ struct{} `type:"structure"`

	// The container quick response content.
	Markdown *QuickResponseContentProvider `locationName:"markdown" type:"structure"`

	// The container quick response content.
	PlainText *QuickResponseContentProvider `locationName:"plainText" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseContents) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseContents) GoString() string {
	return s.String()
}

// SetMarkdown sets the Markdown field's value.
func (s *QuickResponseContents) SetMarkdown(v *QuickResponseContentProvider) *QuickResponseContents {
	s.Markdown = v
	return s
}

// SetPlainText sets the PlainText field's value.
func (s *QuickResponseContents) SetPlainText(v *QuickResponseContentProvider) *QuickResponseContents {
	s.PlainText = v
	return s
}

// Information about the quick response.
type QuickResponseData struct {
	_ struct{} `type:"structure"`

	// The Amazon Connect contact channels this quick response applies to. The supported
	// contact channel types include Chat.
	Channels []*string `locationName:"channels" type:"list"`

	// The media type of the quick response content.
	//
	//    * Use application/x.quickresponse;format=plain for quick response written
	//    in plain text.
	//
	//    * Use application/x.quickresponse;format=markdown for quick response written
	//    in richtext.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The contents of the quick response.
	Contents *QuickResponseContents `locationName:"contents" type:"structure"`

	// The timestamp when the quick response was created.
	//
	// CreatedTime is a required field
	CreatedTime *time.Time `locationName:"createdTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The description of the quick response.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information of the user groups that the quick response
	// is accessible to.
	GroupingConfiguration *GroupingConfiguration `locationName:"groupingConfiguration" type:"structure"`

	// Whether the quick response is active.
	IsActive *bool `locationName:"isActive" type:"boolean"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The language code value for the language in which the quick response is written.
	Language *string `locationName:"language" min:"2" type:"string"`

	// The Amazon Resource Name (ARN) of the user who last updated the quick response
	// data.
	LastModifiedBy *string `locationName:"lastModifiedBy" min:"1" type:"string"`

	// The timestamp when the quick response data was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `locationName:"lastModifiedTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The name of the quick response.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the quick response.
	//
	// QuickResponseArn is a required field
	QuickResponseArn *string `locationName:"quickResponseArn" type:"string" required:"true"`

	// The identifier of the quick response.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `locationName:"quickResponseId" type:"string" required:"true"`

	// The shortcut key of the quick response. The value should be unique across
	// the knowledge base.
	ShortcutKey *string `locationName:"shortcutKey" min:"1" type:"string"`

	// The status of the quick response data.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"QuickResponseStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseData) GoString() string {
	return s.String()
}

// SetChannels sets the Channels field's value.
func (s *QuickResponseData) SetChannels(v []*string) *QuickResponseData {
	s.Channels = v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *QuickResponseData) SetContentType(v string) *QuickResponseData {
	s.ContentType = &v
	return s
}

// SetContents sets the Contents field's value.
func (s *QuickResponseData) SetContents(v *QuickResponseContents) *QuickResponseData {
	s.Contents = v
	return s
}

// SetCreatedTime sets the CreatedTime field's value.
func (s *QuickResponseData) SetCreatedTime(v time.Time) *QuickResponseData {
	s.CreatedTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *QuickResponseData) SetDescription(v string) *QuickResponseData {
	s.Description = &v
	return s
}

// SetGroupingConfiguration sets the GroupingConfiguration field's value.
func (s *QuickResponseData) SetGroupingConfiguration(v *GroupingConfiguration) *QuickResponseData {
	s.GroupingConfiguration = v
	return s
}

// SetIsActive sets the IsActive field's value.
func (s *QuickResponseData) SetIsActive(v bool) *QuickResponseData {
	s.IsActive = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *QuickResponseData) SetKnowledgeBaseArn(v string) *QuickResponseData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *QuickResponseData) SetKnowledgeBaseId(v string) *QuickResponseData {
	s.KnowledgeBaseId = &v
	return s
}

// SetLanguage sets the Language field's value.
func (s *QuickResponseData) SetLanguage(v string) *QuickResponseData {
	s.Language = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *QuickResponseData) SetLastModifiedBy(v string) *QuickResponseData {
	s.LastModifiedBy = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *QuickResponseData) SetLastModifiedTime(v time.Time) *QuickResponseData {
	s.LastModifiedTime = &v
	return s
}

// SetName sets the Name field's value.
func (s *QuickResponseData) SetName(v string) *QuickResponseData {
	s.Name = &v
	return s
}

// SetQuickResponseArn sets the QuickResponseArn field's value.
func (s *QuickResponseData) SetQuickResponseArn(v string) *QuickResponseData {
	s.QuickResponseArn = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *QuickResponseData) SetQuickResponseId(v string) *QuickResponseData {
	s.QuickResponseId = &v
	return s
}

// SetShortcutKey sets the ShortcutKey field's value.
func (s *QuickResponseData) SetShortcutKey(v string) *QuickResponseData {
	s.ShortcutKey = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *QuickResponseData) SetStatus(v string) *QuickResponseData {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *QuickResponseData) SetTags(v map[string]*string) *QuickResponseData {
	s.Tags = v
	return s
}

// The container of quick response data.
type QuickResponseDataProvider struct {
	_ struct{} `type:"structure"`

	// The content of the quick response.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QuickResponseDataProvider's
	// String and GoString methods.
	Content *string `locationName:"content" min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseDataProvider) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseDataProvider) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QuickResponseDataProvider) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QuickResponseDataProvider"}
	if s.Content != nil && len(*s.Content) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *QuickResponseDataProvider) SetContent(v string) *QuickResponseDataProvider {
	s.Content = &v
	return s
}

// The quick response fields to filter the quick response query results by.
//
// The following is the list of supported field names.
//
//   - name
//
//   - description
//
//   - shortcutKey
//
//   - isActive
//
//   - channels
//
//   - language
//
//   - contentType
//
//   - createdTime
//
//   - lastModifiedTime
//
//   - lastModifiedBy
//
//   - groupingConfiguration.criteria
//
//   - groupingConfiguration.values
type QuickResponseFilterField struct {
	_ struct{} `type:"structure"`

	// Whether to treat null value as a match for the attribute field.
	IncludeNoExistence *bool `locationName:"includeNoExistence" type:"boolean"`

	// The name of the attribute field to filter the quick responses by.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The operator to use for filtering.
	//
	// Operator is a required field
	Operator *string `locationName:"operator" type:"string" required:"true" enum:"QuickResponseFilterOperator"`

	// The values of attribute field to filter the quick response by.
	Values []*string `locationName:"values" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseFilterField) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseFilterField) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QuickResponseFilterField) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QuickResponseFilterField"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Operator == nil {
		invalidParams.Add(request.NewErrParamRequired("Operator"))
	}
	if s.Values != nil && len(s.Values) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetIncludeNoExistence sets the IncludeNoExistence field's value.
func (s *QuickResponseFilterField) SetIncludeNoExistence(v bool) *QuickResponseFilterField {
	s.IncludeNoExistence = &v
	return s
}

// SetName sets the Name field's value.
func (s *QuickResponseFilterField) SetName(v string) *QuickResponseFilterField {
	s.Name = &v
	return s
}

// SetOperator sets the Operator field's value.
func (s *QuickResponseFilterField) SetOperator(v string) *QuickResponseFilterField {
	s.Operator = &v
	return s
}

// SetValues sets the Values field's value.
func (s *QuickResponseFilterField) SetValues(v []*string) *QuickResponseFilterField {
	s.Values = v
	return s
}

// The quick response fields to order the quick response query results by.
//
// The following is the list of supported field names.
//
//   - name
//
//   - description
//
//   - shortcutKey
//
//   - isActive
//
//   - channels
//
//   - language
//
//   - contentType
//
//   - createdTime
//
//   - lastModifiedTime
//
//   - lastModifiedBy
//
//   - groupingConfiguration.criteria
//
//   - groupingConfiguration.values
type QuickResponseOrderField struct {
	_ struct{} `type:"structure"`

	// The name of the attribute to order the quick response query results by.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The order at which the quick responses are sorted by.
	Order *string `locationName:"order" type:"string" enum:"Order"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseOrderField) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseOrderField) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QuickResponseOrderField) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QuickResponseOrderField"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *QuickResponseOrderField) SetName(v string) *QuickResponseOrderField {
	s.Name = &v
	return s
}

// SetOrder sets the Order field's value.
func (s *QuickResponseOrderField) SetOrder(v string) *QuickResponseOrderField {
	s.Order = &v
	return s
}

// The quick response fields to query quick responses by.
//
// The following is the list of supported field names.
//
//   - content
//
//   - name
//
//   - description
//
//   - shortcutKey
type QuickResponseQueryField struct {
	_ struct{} `type:"structure"`

	// Whether the query expects only exact matches on the attribute field values.
	// The results of the query will only include exact matches if this parameter
	// is set to false.
	AllowFuzziness *bool `locationName:"allowFuzziness" type:"boolean"`

	// The name of the attribute to query the quick responses by.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The operator to use for matching attribute field values in the query.
	//
	// Operator is a required field
	Operator *string `locationName:"operator" type:"string" required:"true" enum:"QuickResponseQueryOperator"`

	// The importance of the attribute field when calculating query result relevancy
	// scores. The value set for this parameter affects the ordering of search results.
	Priority *string `locationName:"priority" type:"string" enum:"Priority"`

	// The values of the attribute to query the quick responses by.
	//
	// Values is a required field
	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseQueryField) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseQueryField) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QuickResponseQueryField) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QuickResponseQueryField"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Operator == nil {
		invalidParams.Add(request.NewErrParamRequired("Operator"))
	}
	if s.Values == nil {
		invalidParams.Add(request.NewErrParamRequired("Values"))
	}
	if s.Values != nil && len(s.Values) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAllowFuzziness sets the AllowFuzziness field's value.
func (s *QuickResponseQueryField) SetAllowFuzziness(v bool) *QuickResponseQueryField {
	s.AllowFuzziness = &v
	return s
}

// SetName sets the Name field's value.
func (s *QuickResponseQueryField) SetName(v string) *QuickResponseQueryField {
	s.Name = &v
	return s
}

// SetOperator sets the Operator field's value.
func (s *QuickResponseQueryField) SetOperator(v string) *QuickResponseQueryField {
	s.Operator = &v
	return s
}

// SetPriority sets the Priority field's value.
func (s *QuickResponseQueryField) SetPriority(v string) *QuickResponseQueryField {
	s.Priority = &v
	return s
}

// SetValues sets the Values field's value.
func (s *QuickResponseQueryField) SetValues(v []*string) *QuickResponseQueryField {
	s.Values = v
	return s
}

// Information about the import job.
type QuickResponseSearchExpression struct {
	_ struct{} `type:"structure"`

	// The configuration of filtering rules applied to quick response query results.
	Filters []*QuickResponseFilterField `locationName:"filters" type:"list"`

	// The quick response attribute fields on which the query results are ordered.
	OrderOnField *QuickResponseOrderField `locationName:"orderOnField" type:"structure"`

	// The quick response query expressions.
	Queries []*QuickResponseQueryField `locationName:"queries" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSearchExpression) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSearchExpression) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *QuickResponseSearchExpression) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "QuickResponseSearchExpression"}
	if s.Filters != nil {
		for i, v := range s.Filters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OrderOnField != nil {
		if err := s.OrderOnField.Validate(); err != nil {
			invalidParams.AddNested("OrderOnField", err.(request.ErrInvalidParams))
		}
	}
	if s.Queries != nil {
		for i, v := range s.Queries {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Queries", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilters sets the Filters field's value.
func (s *QuickResponseSearchExpression) SetFilters(v []*QuickResponseFilterField) *QuickResponseSearchExpression {
	s.Filters = v
	return s
}

// SetOrderOnField sets the OrderOnField field's value.
func (s *QuickResponseSearchExpression) SetOrderOnField(v *QuickResponseOrderField) *QuickResponseSearchExpression {
	s.OrderOnField = v
	return s
}

// SetQueries sets the Queries field's value.
func (s *QuickResponseSearchExpression) SetQueries(v []*QuickResponseQueryField) *QuickResponseSearchExpression {
	s.Queries = v
	return s
}

// The result of quick response search.
type QuickResponseSearchResultData struct {
	_ struct{} `type:"structure"`

	// The user defined contact attributes that are resolved when the search result
	// is returned.
	//
	// AttributesInterpolated is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QuickResponseSearchResultData's
	// String and GoString methods.
	AttributesInterpolated []*string `locationName:"attributesInterpolated" type:"list" sensitive:"true"`

	// The user defined contact attributes that are not resolved when the search
	// result is returned.
	//
	// AttributesNotInterpolated is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by QuickResponseSearchResultData's
	// String and GoString methods.
	AttributesNotInterpolated []*string `locationName:"attributesNotInterpolated" type:"list" sensitive:"true"`

	// The Amazon Connect contact channels this quick response applies to. The supported
	// contact channel types include Chat.
	Channels []*string `locationName:"channels" type:"list"`

	// The media type of the quick response content.
	//
	//    * Use application/x.quickresponse;format=plain for quick response written
	//    in plain text.
	//
	//    * Use application/x.quickresponse;format=markdown for quick response written
	//    in richtext.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The contents of the quick response.
	//
	// Contents is a required field
	Contents *QuickResponseContents `locationName:"contents" type:"structure" required:"true"`

	// The timestamp when the quick response was created.
	//
	// CreatedTime is a required field
	CreatedTime *time.Time `locationName:"createdTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The description of the quick response.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information of the user groups that the quick response
	// is accessible to.
	GroupingConfiguration *GroupingConfiguration `locationName:"groupingConfiguration" type:"structure"`

	// Whether the quick response is active.
	//
	// IsActive is a required field
	IsActive *bool `locationName:"isActive" type:"boolean" required:"true"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The language code value for the language in which the quick response is written.
	Language *string `locationName:"language" min:"2" type:"string"`

	// The Amazon Resource Name (ARN) of the user who last updated the quick response
	// search result data.
	LastModifiedBy *string `locationName:"lastModifiedBy" min:"1" type:"string"`

	// The timestamp when the quick response search result data was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `locationName:"lastModifiedTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The name of the quick response.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the quick response.
	//
	// QuickResponseArn is a required field
	QuickResponseArn *string `locationName:"quickResponseArn" type:"string" required:"true"`

	// The identifier of the quick response.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `locationName:"quickResponseId" type:"string" required:"true"`

	// The shortcut key of the quick response. The value should be unique across
	// the knowledge base.
	ShortcutKey *string `locationName:"shortcutKey" min:"1" type:"string"`

	// The resource status of the quick response.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"QuickResponseStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSearchResultData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSearchResultData) GoString() string {
	return s.String()
}

// SetAttributesInterpolated sets the AttributesInterpolated field's value.
func (s *QuickResponseSearchResultData) SetAttributesInterpolated(v []*string) *QuickResponseSearchResultData {
	s.AttributesInterpolated = v
	return s
}

// SetAttributesNotInterpolated sets the AttributesNotInterpolated field's value.
func (s *QuickResponseSearchResultData) SetAttributesNotInterpolated(v []*string) *QuickResponseSearchResultData {
	s.AttributesNotInterpolated = v
	return s
}

// SetChannels sets the Channels field's value.
func (s *QuickResponseSearchResultData) SetChannels(v []*string) *QuickResponseSearchResultData {
	s.Channels = v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *QuickResponseSearchResultData) SetContentType(v string) *QuickResponseSearchResultData {
	s.ContentType = &v
	return s
}

// SetContents sets the Contents field's value.
func (s *QuickResponseSearchResultData) SetContents(v *QuickResponseContents) *QuickResponseSearchResultData {
	s.Contents = v
	return s
}

// SetCreatedTime sets the CreatedTime field's value.
func (s *QuickResponseSearchResultData) SetCreatedTime(v time.Time) *QuickResponseSearchResultData {
	s.CreatedTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *QuickResponseSearchResultData) SetDescription(v string) *QuickResponseSearchResultData {
	s.Description = &v
	return s
}

// SetGroupingConfiguration sets the GroupingConfiguration field's value.
func (s *QuickResponseSearchResultData) SetGroupingConfiguration(v *GroupingConfiguration) *QuickResponseSearchResultData {
	s.GroupingConfiguration = v
	return s
}

// SetIsActive sets the IsActive field's value.
func (s *QuickResponseSearchResultData) SetIsActive(v bool) *QuickResponseSearchResultData {
	s.IsActive = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *QuickResponseSearchResultData) SetKnowledgeBaseArn(v string) *QuickResponseSearchResultData {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *QuickResponseSearchResultData) SetKnowledgeBaseId(v string) *QuickResponseSearchResultData {
	s.KnowledgeBaseId = &v
	return s
}

// SetLanguage sets the Language field's value.
func (s *QuickResponseSearchResultData) SetLanguage(v string) *QuickResponseSearchResultData {
	s.Language = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *QuickResponseSearchResultData) SetLastModifiedBy(v string) *QuickResponseSearchResultData {
	s.LastModifiedBy = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *QuickResponseSearchResultData) SetLastModifiedTime(v time.Time) *QuickResponseSearchResultData {
	s.LastModifiedTime = &v
	return s
}

// SetName sets the Name field's value.
func (s *QuickResponseSearchResultData) SetName(v string) *QuickResponseSearchResultData {
	s.Name = &v
	return s
}

// SetQuickResponseArn sets the QuickResponseArn field's value.
func (s *QuickResponseSearchResultData) SetQuickResponseArn(v string) *QuickResponseSearchResultData {
	s.QuickResponseArn = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *QuickResponseSearchResultData) SetQuickResponseId(v string) *QuickResponseSearchResultData {
	s.QuickResponseId = &v
	return s
}

// SetShortcutKey sets the ShortcutKey field's value.
func (s *QuickResponseSearchResultData) SetShortcutKey(v string) *QuickResponseSearchResultData {
	s.ShortcutKey = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *QuickResponseSearchResultData) SetStatus(v string) *QuickResponseSearchResultData {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *QuickResponseSearchResultData) SetTags(v map[string]*string) *QuickResponseSearchResultData {
	s.Tags = v
	return s
}

// The summary information about the quick response.
type QuickResponseSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Connect contact channels this quick response applies to. The supported
	// contact channel types include Chat.
	Channels []*string `locationName:"channels" type:"list"`

	// The media type of the quick response content.
	//
	//    * Use application/x.quickresponse;format=plain for quick response written
	//    in plain text.
	//
	//    * Use application/x.quickresponse;format=markdown for quick response written
	//    in richtext.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The timestamp when the quick response was created.
	//
	// CreatedTime is a required field
	CreatedTime *time.Time `locationName:"createdTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The description of the quick response.
	Description *string `locationName:"description" min:"1" type:"string"`

	// Whether the quick response is active.
	IsActive *bool `locationName:"isActive" type:"boolean"`

	// The Amazon Resource Name (ARN) of the knowledge base.
	//
	// KnowledgeBaseArn is a required field
	KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the user who last updated the quick response
	// data.
	LastModifiedBy *string `locationName:"lastModifiedBy" min:"1" type:"string"`

	// The timestamp when the quick response summary was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `locationName:"lastModifiedTime" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`

	// The name of the quick response.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the quick response.
	//
	// QuickResponseArn is a required field
	QuickResponseArn *string `locationName:"quickResponseArn" type:"string" required:"true"`

	// The identifier of the quick response.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `locationName:"quickResponseId" type:"string" required:"true"`

	// The resource status of the quick response.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"QuickResponseStatus"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QuickResponseSummary) GoString() string {
	return s.String()
}

// SetChannels sets the Channels field's value.
func (s *QuickResponseSummary) SetChannels(v []*string) *QuickResponseSummary {
	s.Channels = v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *QuickResponseSummary) SetContentType(v string) *QuickResponseSummary {
	s.ContentType = &v
	return s
}

// SetCreatedTime sets the CreatedTime field's value.
func (s *QuickResponseSummary) SetCreatedTime(v time.Time) *QuickResponseSummary {
	s.CreatedTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *QuickResponseSummary) SetDescription(v string) *QuickResponseSummary {
	s.Description = &v
	return s
}

// SetIsActive sets the IsActive field's value.
func (s *QuickResponseSummary) SetIsActive(v bool) *QuickResponseSummary {
	s.IsActive = &v
	return s
}

// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value.
func (s *QuickResponseSummary) SetKnowledgeBaseArn(v string) *QuickResponseSummary {
	s.KnowledgeBaseArn = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *QuickResponseSummary) SetKnowledgeBaseId(v string) *QuickResponseSummary {
	s.KnowledgeBaseId = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *QuickResponseSummary) SetLastModifiedBy(v string) *QuickResponseSummary {
	s.LastModifiedBy = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *QuickResponseSummary) SetLastModifiedTime(v time.Time) *QuickResponseSummary {
	s.LastModifiedTime = &v
	return s
}

// SetName sets the Name field's value.
func (s *QuickResponseSummary) SetName(v string) *QuickResponseSummary {
	s.Name = &v
	return s
}

// SetQuickResponseArn sets the QuickResponseArn field's value.
func (s *QuickResponseSummary) SetQuickResponseArn(v string) *QuickResponseSummary {
	s.QuickResponseArn = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *QuickResponseSummary) SetQuickResponseId(v string) *QuickResponseSummary {
	s.QuickResponseId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *QuickResponseSummary) SetStatus(v string) *QuickResponseSummary {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *QuickResponseSummary) SetTags(v map[string]*string) *QuickResponseSummary {
	s.Tags = v
	return s
}

// Details about the source content ranking data.
type RankingData struct {
	_ struct{} `type:"structure"`

	// The relevance score of the content.
	RelevanceLevel *string `locationName:"relevanceLevel" type:"string" enum:"RelevanceLevel"`

	// The relevance level of the recommendation.
	RelevanceScore *float64 `locationName:"relevanceScore" type:"double"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RankingData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RankingData) GoString() string {
	return s.String()
}

// SetRelevanceLevel sets the RelevanceLevel field's value.
func (s *RankingData) SetRelevanceLevel(v string) *RankingData {
	s.RelevanceLevel = &v
	return s
}

// SetRelevanceScore sets the RelevanceScore field's value.
func (s *RankingData) SetRelevanceScore(v float64) *RankingData {
	s.RelevanceScore = &v
	return s
}

// Information about the recommendation.
type RecommendationData struct {
	_ struct{} `type:"structure"`

	// Summary of the recommended content.
	Data *DataSummary `locationName:"data" type:"structure"`

	// The recommended document.
	Document *Document `locationName:"document" type:"structure"`

	// The identifier of the recommendation.
	//
	// RecommendationId is a required field
	RecommendationId *string `locationName:"recommendationId" min:"1" type:"string" required:"true"`

	// The relevance level of the recommendation.
	RelevanceLevel *string `locationName:"relevanceLevel" type:"string" enum:"RelevanceLevel"`

	// The relevance score of the recommendation.
	RelevanceScore *float64 `locationName:"relevanceScore" type:"double"`

	// The type of recommendation.
	Type *string `locationName:"type" type:"string" enum:"RecommendationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationData) GoString() string {
	return s.String()
}

// SetData sets the Data field's value.
func (s *RecommendationData) SetData(v *DataSummary) *RecommendationData {
	s.Data = v
	return s
}

// SetDocument sets the Document field's value.
func (s *RecommendationData) SetDocument(v *Document) *RecommendationData {
	s.Document = v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *RecommendationData) SetRecommendationId(v string) *RecommendationData {
	s.RecommendationId = &v
	return s
}

// SetRelevanceLevel sets the RelevanceLevel field's value.
func (s *RecommendationData) SetRelevanceLevel(v string) *RecommendationData {
	s.RelevanceLevel = &v
	return s
}

// SetRelevanceScore sets the RelevanceScore field's value.
func (s *RecommendationData) SetRelevanceScore(v float64) *RecommendationData {
	s.RelevanceScore = &v
	return s
}

// SetType sets the Type field's value.
func (s *RecommendationData) SetType(v string) *RecommendationData {
	s.Type = &v
	return s
}

// A recommendation trigger provides context on the event that produced the
// referenced recommendations. Recommendations are only referenced in recommendationIds
// by a single RecommendationTrigger.
type RecommendationTrigger struct {
	_ struct{} `type:"structure"`

	// A union type containing information related to the trigger.
	//
	// Data is a required field
	Data *RecommendationTriggerData `locationName:"data" type:"structure" required:"true"`

	// The identifier of the recommendation trigger.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The identifiers of the recommendations.
	//
	// RecommendationIds is a required field
	RecommendationIds []*string `locationName:"recommendationIds" type:"list" required:"true"`

	// The source of the recommendation trigger.
	//
	//    * ISSUE_DETECTION: The corresponding recommendations were triggered by
	//    a Contact Lens issue.
	//
	//    * RULE_EVALUATION: The corresponding recommendations were triggered by
	//    a Contact Lens rule.
	//
	// Source is a required field
	Source *string `locationName:"source" type:"string" required:"true" enum:"RecommendationSourceType"`

	// The type of recommendation trigger.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"RecommendationTriggerType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationTrigger) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationTrigger) GoString() string {
	return s.String()
}

// SetData sets the Data field's value.
func (s *RecommendationTrigger) SetData(v *RecommendationTriggerData) *RecommendationTrigger {
	s.Data = v
	return s
}

// SetId sets the Id field's value.
func (s *RecommendationTrigger) SetId(v string) *RecommendationTrigger {
	s.Id = &v
	return s
}

// SetRecommendationIds sets the RecommendationIds field's value.
func (s *RecommendationTrigger) SetRecommendationIds(v []*string) *RecommendationTrigger {
	s.RecommendationIds = v
	return s
}

// SetSource sets the Source field's value.
func (s *RecommendationTrigger) SetSource(v string) *RecommendationTrigger {
	s.Source = &v
	return s
}

// SetType sets the Type field's value.
func (s *RecommendationTrigger) SetType(v string) *RecommendationTrigger {
	s.Type = &v
	return s
}

// A union type containing information related to the trigger.
type RecommendationTriggerData struct {
	_ struct{} `type:"structure"`

	// Data associated with the QUERY RecommendationTriggerType.
	Query *QueryRecommendationTriggerData `locationName:"query" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationTriggerData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationTriggerData) GoString() string {
	return s.String()
}

// SetQuery sets the Query field's value.
func (s *RecommendationTriggerData) SetQuery(v *QueryRecommendationTriggerData) *RecommendationTriggerData {
	s.Query = v
	return s
}

type RemoveKnowledgeBaseTemplateUriInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveKnowledgeBaseTemplateUriInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveKnowledgeBaseTemplateUriInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RemoveKnowledgeBaseTemplateUriInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RemoveKnowledgeBaseTemplateUriInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *RemoveKnowledgeBaseTemplateUriInput) SetKnowledgeBaseId(v string) *RemoveKnowledgeBaseTemplateUriInput {
	s.KnowledgeBaseId = &v
	return s
}

type RemoveKnowledgeBaseTemplateUriOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveKnowledgeBaseTemplateUriOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveKnowledgeBaseTemplateUriOutput) GoString() string {
	return s.String()
}

// Information about how to render the content.
type RenderingConfiguration struct {
	_ struct{} `type:"structure"`

	// A URI template containing exactly one variable in ${variableName} format.
	// This can only be set for EXTERNAL knowledge bases. For Salesforce, ServiceNow,
	// and Zendesk, the variable must be one of the following:
	//
	//    * Salesforce: Id, ArticleNumber, VersionNumber, Title, PublishStatus,
	//    or IsDeleted
	//
	//    * ServiceNow: number, short_description, sys_mod_count, workflow_state,
	//    or active
	//
	//    * Zendesk: id, title, updated_at, or draft
	//
	// The variable is replaced with the actual value for a piece of content when
	// calling GetContent (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_GetContent.html).
	TemplateUri *string `locationName:"templateUri" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RenderingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RenderingConfiguration"}
	if s.TemplateUri != nil && len(*s.TemplateUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TemplateUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTemplateUri sets the TemplateUri field's value.
func (s *RenderingConfiguration) SetTemplateUri(v string) *RenderingConfiguration {
	s.TemplateUri = &v
	return s
}

// The request reached the service more than 15 minutes after the date stamp
// on the request or more than 15 minutes after the request expiration date
// (such as for pre-signed URLs), or the date stamp on the request is more than
// 15 minutes in the future.
type RequestTimeoutException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RequestTimeoutException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RequestTimeoutException) GoString() string {
	return s.String()
}

func newErrorRequestTimeoutException(v protocol.ResponseMetadata) error {
	return &RequestTimeoutException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *RequestTimeoutException) Code() string {
	return "RequestTimeoutException"
}

// Message returns the exception's message.
func (s *RequestTimeoutException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *RequestTimeoutException) OrigErr() error {
	return nil
}

func (s *RequestTimeoutException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *RequestTimeoutException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *RequestTimeoutException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The specified resource does not exist.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	// The specified resource name.
	ResourceName *string `locationName:"resourceName" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) GoString() string {
	return s.String()
}

func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
	return &ResourceNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceNotFoundException) Code() string {
	return "ResourceNotFoundException"
}

// Message returns the exception's message.
func (s *ResourceNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotFoundException) OrigErr() error {
	return nil
}

func (s *ResourceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Information about the result.
type ResultData struct {
	_ struct{} `type:"structure"`

	// Summary of the recommended content.
	Data *DataSummary `locationName:"data" type:"structure"`

	// The document.
	Document *Document `locationName:"document" type:"structure"`

	// The relevance score of the results.
	RelevanceScore *float64 `locationName:"relevanceScore" type:"double"`

	// The identifier of the result data.
	//
	// ResultId is a required field
	ResultId *string `locationName:"resultId" type:"string" required:"true"`

	// The type of the query result.
	Type *string `locationName:"type" type:"string" enum:"QueryResultType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResultData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResultData) GoString() string {
	return s.String()
}

// SetData sets the Data field's value.
func (s *ResultData) SetData(v *DataSummary) *ResultData {
	s.Data = v
	return s
}

// SetDocument sets the Document field's value.
func (s *ResultData) SetDocument(v *Document) *ResultData {
	s.Document = v
	return s
}

// SetRelevanceScore sets the RelevanceScore field's value.
func (s *ResultData) SetRelevanceScore(v float64) *ResultData {
	s.RelevanceScore = &v
	return s
}

// SetResultId sets the ResultId field's value.
func (s *ResultData) SetResultId(v string) *ResultData {
	s.ResultId = &v
	return s
}

// SetType sets the Type field's value.
func (s *ResultData) SetType(v string) *ResultData {
	s.Type = &v
	return s
}

type SearchContentInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The search expression to filter results.
	//
	// SearchExpression is a required field
	SearchExpression *SearchExpression `locationName:"searchExpression" type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchContentInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchExpression == nil {
		invalidParams.Add(request.NewErrParamRequired("SearchExpression"))
	}
	if s.SearchExpression != nil {
		if err := s.SearchExpression.Validate(); err != nil {
			invalidParams.AddNested("SearchExpression", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *SearchContentInput) SetKnowledgeBaseId(v string) *SearchContentInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchContentInput) SetMaxResults(v int64) *SearchContentInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchContentInput) SetNextToken(v string) *SearchContentInput {
	s.NextToken = &v
	return s
}

// SetSearchExpression sets the SearchExpression field's value.
func (s *SearchContentInput) SetSearchExpression(v *SearchExpression) *SearchContentInput {
	s.SearchExpression = v
	return s
}

type SearchContentOutput struct {
	_ struct{} `type:"structure"`

	// Summary information about the content.
	//
	// ContentSummaries is a required field
	ContentSummaries []*ContentSummary `locationName:"contentSummaries" type:"list" required:"true"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchContentOutput) GoString() string {
	return s.String()
}

// SetContentSummaries sets the ContentSummaries field's value.
func (s *SearchContentOutput) SetContentSummaries(v []*ContentSummary) *SearchContentOutput {
	s.ContentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchContentOutput) SetNextToken(v string) *SearchContentOutput {
	s.NextToken = &v
	return s
}

// The search expression.
type SearchExpression struct {
	_ struct{} `type:"structure"`

	// The search expression filters.
	//
	// Filters is a required field
	Filters []*Filter `locationName:"filters" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchExpression) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchExpression) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchExpression) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchExpression"}
	if s.Filters == nil {
		invalidParams.Add(request.NewErrParamRequired("Filters"))
	}
	if s.Filters != nil {
		for i, v := range s.Filters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilters sets the Filters field's value.
func (s *SearchExpression) SetFilters(v []*Filter) *SearchExpression {
	s.Filters = v
	return s
}

type SearchQuickResponsesInput struct {
	_ struct{} `type:"structure"`

	// The user-defined Amazon Connect contact attributes (https://docs.aws.amazon.com/connect/latest/adminguide/connect-attrib-list.html#user-defined-attributes)
	// to be resolved when search results are returned.
	//
	// Attributes is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SearchQuickResponsesInput's
	// String and GoString methods.
	Attributes map[string]*string `locationName:"attributes" type:"map" sensitive:"true"`

	// The identifier of the knowledge base. This should be a QUICK_RESPONSES type
	// knowledge base. Can be either the ID or the ARN. URLs cannot contain the
	// ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The search expression for querying the quick response.
	//
	// SearchExpression is a required field
	SearchExpression *QuickResponseSearchExpression `locationName:"searchExpression" type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchQuickResponsesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchQuickResponsesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchQuickResponsesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchQuickResponsesInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchExpression == nil {
		invalidParams.Add(request.NewErrParamRequired("SearchExpression"))
	}
	if s.SearchExpression != nil {
		if err := s.SearchExpression.Validate(); err != nil {
			invalidParams.AddNested("SearchExpression", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttributes sets the Attributes field's value.
func (s *SearchQuickResponsesInput) SetAttributes(v map[string]*string) *SearchQuickResponsesInput {
	s.Attributes = v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *SearchQuickResponsesInput) SetKnowledgeBaseId(v string) *SearchQuickResponsesInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchQuickResponsesInput) SetMaxResults(v int64) *SearchQuickResponsesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchQuickResponsesInput) SetNextToken(v string) *SearchQuickResponsesInput {
	s.NextToken = &v
	return s
}

// SetSearchExpression sets the SearchExpression field's value.
func (s *SearchQuickResponsesInput) SetSearchExpression(v *QuickResponseSearchExpression) *SearchQuickResponsesInput {
	s.SearchExpression = v
	return s
}

type SearchQuickResponsesOutput struct {
	_ struct{} `type:"structure"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// The results of the quick response search.
	//
	// Results is a required field
	Results []*QuickResponseSearchResultData `locationName:"results" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchQuickResponsesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchQuickResponsesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *SearchQuickResponsesOutput) SetNextToken(v string) *SearchQuickResponsesOutput {
	s.NextToken = &v
	return s
}

// SetResults sets the Results field's value.
func (s *SearchQuickResponsesOutput) SetResults(v []*QuickResponseSearchResultData) *SearchQuickResponsesOutput {
	s.Results = v
	return s
}

type SearchSessionsInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Q assistant. Can be either the ID or the ARN.
	// URLs cannot contain the ARN.
	//
	// AssistantId is a required field
	AssistantId *string `location:"uri" locationName:"assistantId" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The search expression to filter results.
	//
	// SearchExpression is a required field
	SearchExpression *SearchExpression `locationName:"searchExpression" type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSessionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSessionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchSessionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchSessionsInput"}
	if s.AssistantId == nil {
		invalidParams.Add(request.NewErrParamRequired("AssistantId"))
	}
	if s.AssistantId != nil && len(*s.AssistantId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssistantId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchExpression == nil {
		invalidParams.Add(request.NewErrParamRequired("SearchExpression"))
	}
	if s.SearchExpression != nil {
		if err := s.SearchExpression.Validate(); err != nil {
			invalidParams.AddNested("SearchExpression", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssistantId sets the AssistantId field's value.
func (s *SearchSessionsInput) SetAssistantId(v string) *SearchSessionsInput {
	s.AssistantId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchSessionsInput) SetMaxResults(v int64) *SearchSessionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchSessionsInput) SetNextToken(v string) *SearchSessionsInput {
	s.NextToken = &v
	return s
}

// SetSearchExpression sets the SearchExpression field's value.
func (s *SearchSessionsInput) SetSearchExpression(v *SearchExpression) *SearchSessionsInput {
	s.SearchExpression = v
	return s
}

type SearchSessionsOutput struct {
	_ struct{} `type:"structure"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Summary information about the sessions.
	//
	// SessionSummaries is a required field
	SessionSummaries []*SessionSummary `locationName:"sessionSummaries" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSessionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSessionsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *SearchSessionsOutput) SetNextToken(v string) *SearchSessionsOutput {
	s.NextToken = &v
	return s
}

// SetSessionSummaries sets the SessionSummaries field's value.
func (s *SearchSessionsOutput) SetSessionSummaries(v []*SessionSummary) *SearchSessionsOutput {
	s.SessionSummaries = v
	return s
}

// The configuration information for the customer managed key used for encryption.
type ServerSideEncryptionConfiguration struct {
	_ struct{} `type:"structure"`

	// The customer managed key used for encryption. For more information about
	// setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect
	// for your instance (https://docs.aws.amazon.com/connect/latest/adminguide/enable-q.html).
	// For information about valid ID values, see Key identifiers (KeyId) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id).
	KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServerSideEncryptionConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServerSideEncryptionConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ServerSideEncryptionConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ServerSideEncryptionConfiguration"}
	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *ServerSideEncryptionConfiguration) SetKmsKeyId(v string) *ServerSideEncryptionConfiguration {
	s.KmsKeyId = &v
	return s
}

// You've exceeded your service quota. To perform the requested action, remove
// some of the relevant resources, or use service quotas to request a service
// quota increase.
type ServiceQuotaExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceQuotaExceededException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceQuotaExceededException) GoString() string {
	return s.String()
}

func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
	return &ServiceQuotaExceededException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceQuotaExceededException) Code() string {
	return "ServiceQuotaExceededException"
}

// Message returns the exception's message.
func (s *ServiceQuotaExceededException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceQuotaExceededException) OrigErr() error {
	return nil
}

func (s *ServiceQuotaExceededException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceQuotaExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceQuotaExceededException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Information about the session.
type SessionData struct {
	_ struct{} `type:"structure"`

	// The description of the session.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The configuration information for the session integration.
	IntegrationConfiguration *SessionIntegrationConfiguration `locationName:"integrationConfiguration" type:"structure"`

	// The name of the session.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the session.
	//
	// SessionArn is a required field
	SessionArn *string `locationName:"sessionArn" type:"string" required:"true"`

	// The identifier of the session.
	//
	// SessionId is a required field
	SessionId *string `locationName:"sessionId" type:"string" required:"true"`

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionData) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *SessionData) SetDescription(v string) *SessionData {
	s.Description = &v
	return s
}

// SetIntegrationConfiguration sets the IntegrationConfiguration field's value.
func (s *SessionData) SetIntegrationConfiguration(v *SessionIntegrationConfiguration) *SessionData {
	s.IntegrationConfiguration = v
	return s
}

// SetName sets the Name field's value.
func (s *SessionData) SetName(v string) *SessionData {
	s.Name = &v
	return s
}

// SetSessionArn sets the SessionArn field's value.
func (s *SessionData) SetSessionArn(v string) *SessionData {
	s.SessionArn = &v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *SessionData) SetSessionId(v string) *SessionData {
	s.SessionId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *SessionData) SetTags(v map[string]*string) *SessionData {
	s.Tags = v
	return s
}

// The configuration information for the session integration.
type SessionIntegrationConfiguration struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the integrated Amazon SNS topic used for
	// streaming chat messages.
	TopicIntegrationArn *string `locationName:"topicIntegrationArn" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionIntegrationConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionIntegrationConfiguration) GoString() string {
	return s.String()
}

// SetTopicIntegrationArn sets the TopicIntegrationArn field's value.
func (s *SessionIntegrationConfiguration) SetTopicIntegrationArn(v string) *SessionIntegrationConfiguration {
	s.TopicIntegrationArn = &v
	return s
}

// Summary information about the session.
type SessionSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Q assistant.
	//
	// AssistantArn is a required field
	AssistantArn *string `locationName:"assistantArn" type:"string" required:"true"`

	// The identifier of the Amazon Q assistant.
	//
	// AssistantId is a required field
	AssistantId *string `locationName:"assistantId" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the session.
	//
	// SessionArn is a required field
	SessionArn *string `locationName:"sessionArn" type:"string" required:"true"`

	// The identifier of the session.
	//
	// SessionId is a required field
	SessionId *string `locationName:"sessionId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SessionSummary) GoString() string {
	return s.String()
}

// SetAssistantArn sets the AssistantArn field's value.
func (s *SessionSummary) SetAssistantArn(v string) *SessionSummary {
	s.AssistantArn = &v
	return s
}

// SetAssistantId sets the AssistantId field's value.
func (s *SessionSummary) SetAssistantId(v string) *SessionSummary {
	s.AssistantId = &v
	return s
}

// SetSessionArn sets the SessionArn field's value.
func (s *SessionSummary) SetSessionArn(v string) *SessionSummary {
	s.SessionArn = &v
	return s
}

// SetSessionId sets the SessionId field's value.
func (s *SessionSummary) SetSessionId(v string) *SessionSummary {
	s.SessionId = &v
	return s
}

// Configuration information about the external data source.
type SourceConfiguration struct {
	_ struct{} `type:"structure"`

	// Configuration information for Amazon AppIntegrations to automatically ingest
	// content.
	AppIntegrations *AppIntegrationsConfiguration `locationName:"appIntegrations" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceConfiguration"}
	if s.AppIntegrations != nil {
		if err := s.AppIntegrations.Validate(); err != nil {
			invalidParams.AddNested("AppIntegrations", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppIntegrations sets the AppIntegrations field's value.
func (s *SourceConfiguration) SetAppIntegrations(v *AppIntegrationsConfiguration) *SourceConfiguration {
	s.AppIntegrations = v
	return s
}

// Details about the source content data.
type SourceContentDataDetails struct {
	_ struct{} `type:"structure"`

	// The identifier of the source content.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// Details about the source content ranking data.
	//
	// RankingData is a required field
	RankingData *RankingData `locationName:"rankingData" type:"structure" required:"true"`

	// Details about the source content text data.
	//
	// TextData is a required field
	TextData *TextData `locationName:"textData" type:"structure" required:"true"`

	// The type of the source content.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SourceContentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceContentDataDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceContentDataDetails) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *SourceContentDataDetails) SetId(v string) *SourceContentDataDetails {
	s.Id = &v
	return s
}

// SetRankingData sets the RankingData field's value.
func (s *SourceContentDataDetails) SetRankingData(v *RankingData) *SourceContentDataDetails {
	s.RankingData = v
	return s
}

// SetTextData sets the TextData field's value.
func (s *SourceContentDataDetails) SetTextData(v *TextData) *SourceContentDataDetails {
	s.TextData = v
	return s
}

// SetType sets the Type field's value.
func (s *SourceContentDataDetails) SetType(v string) *SourceContentDataDetails {
	s.Type = &v
	return s
}

type StartContentUploadInput struct {
	_ struct{} `type:"structure"`

	// The type of content to upload.
	//
	// ContentType is a required field
	ContentType *string `locationName:"contentType" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The expected expiration time of the generated presigned URL, specified in
	// minutes.
	PresignedUrlTimeToLive *int64 `locationName:"presignedUrlTimeToLive" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartContentUploadInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartContentUploadInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartContentUploadInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartContentUploadInput"}
	if s.ContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentType"))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.PresignedUrlTimeToLive != nil && *s.PresignedUrlTimeToLive < 1 {
		invalidParams.Add(request.NewErrParamMinValue("PresignedUrlTimeToLive", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentType sets the ContentType field's value.
func (s *StartContentUploadInput) SetContentType(v string) *StartContentUploadInput {
	s.ContentType = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *StartContentUploadInput) SetKnowledgeBaseId(v string) *StartContentUploadInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetPresignedUrlTimeToLive sets the PresignedUrlTimeToLive field's value.
func (s *StartContentUploadInput) SetPresignedUrlTimeToLive(v int64) *StartContentUploadInput {
	s.PresignedUrlTimeToLive = &v
	return s
}

type StartContentUploadOutput struct {
	_ struct{} `type:"structure"`

	// The headers to include in the upload.
	//
	// HeadersToInclude is a required field
	HeadersToInclude map[string]*string `locationName:"headersToInclude" type:"map" required:"true"`

	// The identifier of the upload.
	//
	// UploadId is a required field
	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`

	// The URL of the upload.
	//
	// Url is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by StartContentUploadOutput's
	// String and GoString methods.
	//
	// Url is a required field
	Url *string `locationName:"url" min:"1" type:"string" required:"true" sensitive:"true"`

	// The expiration time of the URL as an epoch timestamp.
	//
	// UrlExpiry is a required field
	UrlExpiry *time.Time `locationName:"urlExpiry" type:"timestamp" timestampFormat:"unixTimestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartContentUploadOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartContentUploadOutput) GoString() string {
	return s.String()
}

// SetHeadersToInclude sets the HeadersToInclude field's value.
func (s *StartContentUploadOutput) SetHeadersToInclude(v map[string]*string) *StartContentUploadOutput {
	s.HeadersToInclude = v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *StartContentUploadOutput) SetUploadId(v string) *StartContentUploadOutput {
	s.UploadId = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *StartContentUploadOutput) SetUrl(v string) *StartContentUploadOutput {
	s.Url = &v
	return s
}

// SetUrlExpiry sets the UrlExpiry field's value.
func (s *StartContentUploadOutput) SetUrlExpiry(v time.Time) *StartContentUploadOutput {
	s.UrlExpiry = &v
	return s
}

type StartImportJobInput struct {
	_ struct{} `type:"structure"`

	// The tags used to organize, track, or control access for this resource.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The configuration information of the external source that the resource data
	// are imported from.
	ExternalSourceConfiguration *ExternalSourceConfiguration `locationName:"externalSourceConfiguration" type:"structure"`

	// The type of the import job.
	//
	//    * For importing quick response resource, set the value to QUICK_RESPONSES.
	//
	// ImportJobType is a required field
	ImportJobType *string `locationName:"importJobType" type:"string" required:"true" enum:"ImportJobType"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	//    * For importing Amazon Q quick responses, this should be a QUICK_RESPONSES
	//    type knowledge base.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The metadata fields of the imported Amazon Q resources.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// A pointer to the uploaded asset. This value is returned by StartContentUpload
	// (https://docs.aws.amazon.com/wisdom/latest/APIReference/API_StartContentUpload.html).
	//
	// UploadId is a required field
	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartImportJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartImportJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartImportJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartImportJobInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.ImportJobType == nil {
		invalidParams.Add(request.NewErrParamRequired("ImportJobType"))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.UploadId == nil {
		invalidParams.Add(request.NewErrParamRequired("UploadId"))
	}
	if s.UploadId != nil && len(*s.UploadId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
	}
	if s.ExternalSourceConfiguration != nil {
		if err := s.ExternalSourceConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ExternalSourceConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *StartImportJobInput) SetClientToken(v string) *StartImportJobInput {
	s.ClientToken = &v
	return s
}

// SetExternalSourceConfiguration sets the ExternalSourceConfiguration field's value.
func (s *StartImportJobInput) SetExternalSourceConfiguration(v *ExternalSourceConfiguration) *StartImportJobInput {
	s.ExternalSourceConfiguration = v
	return s
}

// SetImportJobType sets the ImportJobType field's value.
func (s *StartImportJobInput) SetImportJobType(v string) *StartImportJobInput {
	s.ImportJobType = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *StartImportJobInput) SetKnowledgeBaseId(v string) *StartImportJobInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *StartImportJobInput) SetMetadata(v map[string]*string) *StartImportJobInput {
	s.Metadata = v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *StartImportJobInput) SetUploadId(v string) *StartImportJobInput {
	s.UploadId = &v
	return s
}

type StartImportJobOutput struct {
	_ struct{} `type:"structure"`

	// The import job.
	ImportJob *ImportJobData `locationName:"importJob" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartImportJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartImportJobOutput) GoString() string {
	return s.String()
}

// SetImportJob sets the ImportJob field's value.
func (s *StartImportJobOutput) SetImportJob(v *ImportJobData) *StartImportJobOutput {
	s.ImportJob = v
	return s
}

type TagResourceInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`

	// The tags used to organize, track, or control access for this resource.
	//
	// Tags is a required field
	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
	s.ResourceArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
	s.Tags = v
	return s
}

type TagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) GoString() string {
	return s.String()
}

// Details about the source content text data.
type TextData struct {
	_ struct{} `type:"structure"`

	// The text of the document.
	Excerpt *DocumentText `locationName:"excerpt" type:"structure"`

	// The text of the document.
	Title *DocumentText `locationName:"title" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextData) GoString() string {
	return s.String()
}

// SetExcerpt sets the Excerpt field's value.
func (s *TextData) SetExcerpt(v *DocumentText) *TextData {
	s.Excerpt = v
	return s
}

// SetTitle sets the Title field's value.
func (s *TextData) SetTitle(v *DocumentText) *TextData {
	s.Title = v
	return s
}

// Amazon Q in Connect throws this exception if you have too many tags in your
// tag set.
type TooManyTagsException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	// The specified resource name.
	ResourceName *string `locationName:"resourceName" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TooManyTagsException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TooManyTagsException) GoString() string {
	return s.String()
}

func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
	return &TooManyTagsException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *TooManyTagsException) Code() string {
	return "TooManyTagsException"
}

// Message returns the exception's message.
func (s *TooManyTagsException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *TooManyTagsException) OrigErr() error {
	return nil
}

func (s *TooManyTagsException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *TooManyTagsException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *TooManyTagsException) RequestID() string {
	return s.RespMetadata.RequestID
}

type UntagResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`

	// The tag keys.
	//
	// TagKeys is a required field
	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}
	if s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
	s.ResourceArn = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
	s.TagKeys = v
	return s
}

type UntagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) GoString() string {
	return s.String()
}

type UpdateContentInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the content. Can be either the ID or the ARN. URLs cannot
	// contain the ARN.
	//
	// ContentId is a required field
	ContentId *string `location:"uri" locationName:"contentId" type:"string" required:"true"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// A key/value map to store attributes without affecting tagging or recommendations.
	// For example, when synchronizing data between an external system and Amazon
	// Q, you can store an external version identifier as metadata to utilize for
	// determining drift.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// The URI for the article. If the knowledge base has a templateUri, setting
	// this argument overrides it for this piece of content. To remove an existing
	// overrideLinkOurUri, exclude this argument and set removeOverrideLinkOutUri
	// to true.
	OverrideLinkOutUri *string `locationName:"overrideLinkOutUri" min:"1" type:"string"`

	// Unset the existing overrideLinkOutUri if it exists.
	RemoveOverrideLinkOutUri *bool `locationName:"removeOverrideLinkOutUri" type:"boolean"`

	// The revisionId of the content resource to update, taken from an earlier call
	// to GetContent, GetContentSummary, SearchContent, or ListContents. If included,
	// this argument acts as an optimistic lock to ensure content was not modified
	// since it was last read. If it has been modified, this API throws a PreconditionFailedException.
	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`

	// The title of the content.
	Title *string `locationName:"title" min:"1" type:"string"`

	// A pointer to the uploaded asset. This value is returned by StartContentUpload
	// (https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_StartContentUpload.html).
	UploadId *string `locationName:"uploadId" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateContentInput"}
	if s.ContentId == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentId"))
	}
	if s.ContentId != nil && len(*s.ContentId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentId", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.OverrideLinkOutUri != nil && len(*s.OverrideLinkOutUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("OverrideLinkOutUri", 1))
	}
	if s.RevisionId != nil && len(*s.RevisionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RevisionId", 1))
	}
	if s.Title != nil && len(*s.Title) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Title", 1))
	}
	if s.UploadId != nil && len(*s.UploadId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentId sets the ContentId field's value.
func (s *UpdateContentInput) SetContentId(v string) *UpdateContentInput {
	s.ContentId = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *UpdateContentInput) SetKnowledgeBaseId(v string) *UpdateContentInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *UpdateContentInput) SetMetadata(v map[string]*string) *UpdateContentInput {
	s.Metadata = v
	return s
}

// SetOverrideLinkOutUri sets the OverrideLinkOutUri field's value.
func (s *UpdateContentInput) SetOverrideLinkOutUri(v string) *UpdateContentInput {
	s.OverrideLinkOutUri = &v
	return s
}

// SetRemoveOverrideLinkOutUri sets the RemoveOverrideLinkOutUri field's value.
func (s *UpdateContentInput) SetRemoveOverrideLinkOutUri(v bool) *UpdateContentInput {
	s.RemoveOverrideLinkOutUri = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *UpdateContentInput) SetRevisionId(v string) *UpdateContentInput {
	s.RevisionId = &v
	return s
}

// SetTitle sets the Title field's value.
func (s *UpdateContentInput) SetTitle(v string) *UpdateContentInput {
	s.Title = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *UpdateContentInput) SetUploadId(v string) *UpdateContentInput {
	s.UploadId = &v
	return s
}

type UpdateContentOutput struct {
	_ struct{} `type:"structure"`

	// The content.
	Content *ContentData `locationName:"content" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContentOutput) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *UpdateContentOutput) SetContent(v *ContentData) *UpdateContentOutput {
	s.Content = v
	return s
}

type UpdateKnowledgeBaseTemplateUriInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The template URI to update.
	//
	// TemplateUri is a required field
	TemplateUri *string `locationName:"templateUri" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateKnowledgeBaseTemplateUriInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateKnowledgeBaseTemplateUriInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateKnowledgeBaseTemplateUriInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateKnowledgeBaseTemplateUriInput"}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.TemplateUri == nil {
		invalidParams.Add(request.NewErrParamRequired("TemplateUri"))
	}
	if s.TemplateUri != nil && len(*s.TemplateUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TemplateUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *UpdateKnowledgeBaseTemplateUriInput) SetKnowledgeBaseId(v string) *UpdateKnowledgeBaseTemplateUriInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetTemplateUri sets the TemplateUri field's value.
func (s *UpdateKnowledgeBaseTemplateUriInput) SetTemplateUri(v string) *UpdateKnowledgeBaseTemplateUriInput {
	s.TemplateUri = &v
	return s
}

type UpdateKnowledgeBaseTemplateUriOutput struct {
	_ struct{} `type:"structure"`

	// The knowledge base to update.
	KnowledgeBase *KnowledgeBaseData `locationName:"knowledgeBase" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateKnowledgeBaseTemplateUriOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateKnowledgeBaseTemplateUriOutput) GoString() string {
	return s.String()
}

// SetKnowledgeBase sets the KnowledgeBase field's value.
func (s *UpdateKnowledgeBaseTemplateUriOutput) SetKnowledgeBase(v *KnowledgeBaseData) *UpdateKnowledgeBaseTemplateUriOutput {
	s.KnowledgeBase = v
	return s
}

type UpdateQuickResponseInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Connect contact channels this quick response applies to. The supported
	// contact channel types include Chat.
	Channels []*string `locationName:"channels" type:"list"`

	// The updated content of the quick response.
	Content *QuickResponseDataProvider `locationName:"content" type:"structure"`

	// The media type of the quick response content.
	//
	//    * Use application/x.quickresponse;format=plain for quick response written
	//    in plain text.
	//
	//    * Use application/x.quickresponse;format=markdown for quick response written
	//    in richtext.
	ContentType *string `locationName:"contentType" type:"string"`

	// The updated description of the quick response.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The updated grouping configuration of the quick response.
	GroupingConfiguration *GroupingConfiguration `locationName:"groupingConfiguration" type:"structure"`

	// Whether the quick response is active.
	IsActive *bool `locationName:"isActive" type:"boolean"`

	// The identifier of the knowledge base. This should not be a QUICK_RESPONSES
	// type knowledge base if you're storing Amazon Q Content resource to it. Can
	// be either the ID or the ARN. URLs cannot contain the ARN.
	//
	// KnowledgeBaseId is a required field
	KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"`

	// The language code value for the language in which the quick response is written.
	// The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT,
	// ja_JP, ko_KR, pt_BR, zh_CN, zh_TW
	Language *string `locationName:"language" min:"2" type:"string"`

	// The name of the quick response.
	Name *string `locationName:"name" min:"1" type:"string"`

	// The identifier of the quick response.
	//
	// QuickResponseId is a required field
	QuickResponseId *string `location:"uri" locationName:"quickResponseId" type:"string" required:"true"`

	// Whether to remove the description from the quick response.
	RemoveDescription *bool `locationName:"removeDescription" type:"boolean"`

	// Whether to remove the grouping configuration of the quick response.
	RemoveGroupingConfiguration *bool `locationName:"removeGroupingConfiguration" type:"boolean"`

	// Whether to remove the shortcut key of the quick response.
	RemoveShortcutKey *bool `locationName:"removeShortcutKey" type:"boolean"`

	// The shortcut key of the quick response. The value should be unique across
	// the knowledge base.
	ShortcutKey *string `locationName:"shortcutKey" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateQuickResponseInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateQuickResponseInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateQuickResponseInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateQuickResponseInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.KnowledgeBaseId == nil {
		invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId"))
	}
	if s.KnowledgeBaseId != nil && len(*s.KnowledgeBaseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KnowledgeBaseId", 1))
	}
	if s.Language != nil && len(*s.Language) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("Language", 2))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.QuickResponseId == nil {
		invalidParams.Add(request.NewErrParamRequired("QuickResponseId"))
	}
	if s.QuickResponseId != nil && len(*s.QuickResponseId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("QuickResponseId", 1))
	}
	if s.ShortcutKey != nil && len(*s.ShortcutKey) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ShortcutKey", 1))
	}
	if s.Content != nil {
		if err := s.Content.Validate(); err != nil {
			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
		}
	}
	if s.GroupingConfiguration != nil {
		if err := s.GroupingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("GroupingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannels sets the Channels field's value.
func (s *UpdateQuickResponseInput) SetChannels(v []*string) *UpdateQuickResponseInput {
	s.Channels = v
	return s
}

// SetContent sets the Content field's value.
func (s *UpdateQuickResponseInput) SetContent(v *QuickResponseDataProvider) *UpdateQuickResponseInput {
	s.Content = v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *UpdateQuickResponseInput) SetContentType(v string) *UpdateQuickResponseInput {
	s.ContentType = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateQuickResponseInput) SetDescription(v string) *UpdateQuickResponseInput {
	s.Description = &v
	return s
}

// SetGroupingConfiguration sets the GroupingConfiguration field's value.
func (s *UpdateQuickResponseInput) SetGroupingConfiguration(v *GroupingConfiguration) *UpdateQuickResponseInput {
	s.GroupingConfiguration = v
	return s
}

// SetIsActive sets the IsActive field's value.
func (s *UpdateQuickResponseInput) SetIsActive(v bool) *UpdateQuickResponseInput {
	s.IsActive = &v
	return s
}

// SetKnowledgeBaseId sets the KnowledgeBaseId field's value.
func (s *UpdateQuickResponseInput) SetKnowledgeBaseId(v string) *UpdateQuickResponseInput {
	s.KnowledgeBaseId = &v
	return s
}

// SetLanguage sets the Language field's value.
func (s *UpdateQuickResponseInput) SetLanguage(v string) *UpdateQuickResponseInput {
	s.Language = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateQuickResponseInput) SetName(v string) *UpdateQuickResponseInput {
	s.Name = &v
	return s
}

// SetQuickResponseId sets the QuickResponseId field's value.
func (s *UpdateQuickResponseInput) SetQuickResponseId(v string) *UpdateQuickResponseInput {
	s.QuickResponseId = &v
	return s
}

// SetRemoveDescription sets the RemoveDescription field's value.
func (s *UpdateQuickResponseInput) SetRemoveDescription(v bool) *UpdateQuickResponseInput {
	s.RemoveDescription = &v
	return s
}

// SetRemoveGroupingConfiguration sets the RemoveGroupingConfiguration field's value.
func (s *UpdateQuickResponseInput) SetRemoveGroupingConfiguration(v bool) *UpdateQuickResponseInput {
	s.RemoveGroupingConfiguration = &v
	return s
}

// SetRemoveShortcutKey sets the RemoveShortcutKey field's value.
func (s *UpdateQuickResponseInput) SetRemoveShortcutKey(v bool) *UpdateQuickResponseInput {
	s.RemoveShortcutKey = &v
	return s
}

// SetShortcutKey sets the ShortcutKey field's value.
func (s *UpdateQuickResponseInput) SetShortcutKey(v string) *UpdateQuickResponseInput {
	s.ShortcutKey = &v
	return s
}

type UpdateQuickResponseOutput struct {
	_ struct{} `type:"structure"`

	// The quick response.
	QuickResponse *QuickResponseData `locationName:"quickResponse" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateQuickResponseOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateQuickResponseOutput) GoString() string {
	return s.String()
}

// SetQuickResponse sets the QuickResponse field's value.
func (s *UpdateQuickResponseOutput) SetQuickResponse(v *QuickResponseData) *UpdateQuickResponseOutput {
	s.QuickResponse = v
	return s
}

// The input fails to satisfy the constraints specified by a service.
type ValidationException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidationException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidationException) GoString() string {
	return s.String()
}

func newErrorValidationException(v protocol.ResponseMetadata) error {
	return &ValidationException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ValidationException) Code() string {
	return "ValidationException"
}

// Message returns the exception's message.
func (s *ValidationException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ValidationException) OrigErr() error {
	return nil
}

func (s *ValidationException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ValidationException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ValidationException) RequestID() string {
	return s.RespMetadata.RequestID
}

const (
	// AssistantCapabilityTypeV1 is a AssistantCapabilityType enum value
	AssistantCapabilityTypeV1 = "V1"

	// AssistantCapabilityTypeV2 is a AssistantCapabilityType enum value
	AssistantCapabilityTypeV2 = "V2"
)

// AssistantCapabilityType_Values returns all elements of the AssistantCapabilityType enum
func AssistantCapabilityType_Values() []string {
	return []string{
		AssistantCapabilityTypeV1,
		AssistantCapabilityTypeV2,
	}
}

const (
	// AssistantStatusCreateInProgress is a AssistantStatus enum value
	AssistantStatusCreateInProgress = "CREATE_IN_PROGRESS"

	// AssistantStatusCreateFailed is a AssistantStatus enum value
	AssistantStatusCreateFailed = "CREATE_FAILED"

	// AssistantStatusActive is a AssistantStatus enum value
	AssistantStatusActive = "ACTIVE"

	// AssistantStatusDeleteInProgress is a AssistantStatus enum value
	AssistantStatusDeleteInProgress = "DELETE_IN_PROGRESS"

	// AssistantStatusDeleteFailed is a AssistantStatus enum value
	AssistantStatusDeleteFailed = "DELETE_FAILED"

	// AssistantStatusDeleted is a AssistantStatus enum value
	AssistantStatusDeleted = "DELETED"
)

// AssistantStatus_Values returns all elements of the AssistantStatus enum
func AssistantStatus_Values() []string {
	return []string{
		AssistantStatusCreateInProgress,
		AssistantStatusCreateFailed,
		AssistantStatusActive,
		AssistantStatusDeleteInProgress,
		AssistantStatusDeleteFailed,
		AssistantStatusDeleted,
	}
}

const (
	// AssistantTypeAgent is a AssistantType enum value
	AssistantTypeAgent = "AGENT"
)

// AssistantType_Values returns all elements of the AssistantType enum
func AssistantType_Values() []string {
	return []string{
		AssistantTypeAgent,
	}
}

const (
	// AssociationTypeKnowledgeBase is a AssociationType enum value
	AssociationTypeKnowledgeBase = "KNOWLEDGE_BASE"
)

// AssociationType_Values returns all elements of the AssociationType enum
func AssociationType_Values() []string {
	return []string{
		AssociationTypeKnowledgeBase,
	}
}

const (
	// ContentStatusCreateInProgress is a ContentStatus enum value
	ContentStatusCreateInProgress = "CREATE_IN_PROGRESS"

	// ContentStatusCreateFailed is a ContentStatus enum value
	ContentStatusCreateFailed = "CREATE_FAILED"

	// ContentStatusActive is a ContentStatus enum value
	ContentStatusActive = "ACTIVE"

	// ContentStatusDeleteInProgress is a ContentStatus enum value
	ContentStatusDeleteInProgress = "DELETE_IN_PROGRESS"

	// ContentStatusDeleteFailed is a ContentStatus enum value
	ContentStatusDeleteFailed = "DELETE_FAILED"

	// ContentStatusDeleted is a ContentStatus enum value
	ContentStatusDeleted = "DELETED"

	// ContentStatusUpdateFailed is a ContentStatus enum value
	ContentStatusUpdateFailed = "UPDATE_FAILED"
)

// ContentStatus_Values returns all elements of the ContentStatus enum
func ContentStatus_Values() []string {
	return []string{
		ContentStatusCreateInProgress,
		ContentStatusCreateFailed,
		ContentStatusActive,
		ContentStatusDeleteInProgress,
		ContentStatusDeleteFailed,
		ContentStatusDeleted,
		ContentStatusUpdateFailed,
	}
}

const (
	// ExternalSourceAmazonConnect is a ExternalSource enum value
	ExternalSourceAmazonConnect = "AMAZON_CONNECT"
)

// ExternalSource_Values returns all elements of the ExternalSource enum
func ExternalSource_Values() []string {
	return []string{
		ExternalSourceAmazonConnect,
	}
}

const (
	// FilterFieldName is a FilterField enum value
	FilterFieldName = "NAME"
)

// FilterField_Values returns all elements of the FilterField enum
func FilterField_Values() []string {
	return []string{
		FilterFieldName,
	}
}

const (
	// FilterOperatorEquals is a FilterOperator enum value
	FilterOperatorEquals = "EQUALS"
)

// FilterOperator_Values returns all elements of the FilterOperator enum
func FilterOperator_Values() []string {
	return []string{
		FilterOperatorEquals,
	}
}

const (
	// ImportJobStatusStartInProgress is a ImportJobStatus enum value
	ImportJobStatusStartInProgress = "START_IN_PROGRESS"

	// ImportJobStatusFailed is a ImportJobStatus enum value
	ImportJobStatusFailed = "FAILED"

	// ImportJobStatusComplete is a ImportJobStatus enum value
	ImportJobStatusComplete = "COMPLETE"

	// ImportJobStatusDeleteInProgress is a ImportJobStatus enum value
	ImportJobStatusDeleteInProgress = "DELETE_IN_PROGRESS"

	// ImportJobStatusDeleteFailed is a ImportJobStatus enum value
	ImportJobStatusDeleteFailed = "DELETE_FAILED"

	// ImportJobStatusDeleted is a ImportJobStatus enum value
	ImportJobStatusDeleted = "DELETED"
)

// ImportJobStatus_Values returns all elements of the ImportJobStatus enum
func ImportJobStatus_Values() []string {
	return []string{
		ImportJobStatusStartInProgress,
		ImportJobStatusFailed,
		ImportJobStatusComplete,
		ImportJobStatusDeleteInProgress,
		ImportJobStatusDeleteFailed,
		ImportJobStatusDeleted,
	}
}

const (
	// ImportJobTypeQuickResponses is a ImportJobType enum value
	ImportJobTypeQuickResponses = "QUICK_RESPONSES"
)

// ImportJobType_Values returns all elements of the ImportJobType enum
func ImportJobType_Values() []string {
	return []string{
		ImportJobTypeQuickResponses,
	}
}

const (
	// KnowledgeBaseStatusCreateInProgress is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusCreateInProgress = "CREATE_IN_PROGRESS"

	// KnowledgeBaseStatusCreateFailed is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusCreateFailed = "CREATE_FAILED"

	// KnowledgeBaseStatusActive is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusActive = "ACTIVE"

	// KnowledgeBaseStatusDeleteInProgress is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusDeleteInProgress = "DELETE_IN_PROGRESS"

	// KnowledgeBaseStatusDeleteFailed is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusDeleteFailed = "DELETE_FAILED"

	// KnowledgeBaseStatusDeleted is a KnowledgeBaseStatus enum value
	KnowledgeBaseStatusDeleted = "DELETED"
)

// KnowledgeBaseStatus_Values returns all elements of the KnowledgeBaseStatus enum
func KnowledgeBaseStatus_Values() []string {
	return []string{
		KnowledgeBaseStatusCreateInProgress,
		KnowledgeBaseStatusCreateFailed,
		KnowledgeBaseStatusActive,
		KnowledgeBaseStatusDeleteInProgress,
		KnowledgeBaseStatusDeleteFailed,
		KnowledgeBaseStatusDeleted,
	}
}

const (
	// KnowledgeBaseTypeExternal is a KnowledgeBaseType enum value
	KnowledgeBaseTypeExternal = "EXTERNAL"

	// KnowledgeBaseTypeCustom is a KnowledgeBaseType enum value
	KnowledgeBaseTypeCustom = "CUSTOM"

	// KnowledgeBaseTypeQuickResponses is a KnowledgeBaseType enum value
	KnowledgeBaseTypeQuickResponses = "QUICK_RESPONSES"
)

// KnowledgeBaseType_Values returns all elements of the KnowledgeBaseType enum
func KnowledgeBaseType_Values() []string {
	return []string{
		KnowledgeBaseTypeExternal,
		KnowledgeBaseTypeCustom,
		KnowledgeBaseTypeQuickResponses,
	}
}

const (
	// OrderAsc is a Order enum value
	OrderAsc = "ASC"

	// OrderDesc is a Order enum value
	OrderDesc = "DESC"
)

// Order_Values returns all elements of the Order enum
func Order_Values() []string {
	return []string{
		OrderAsc,
		OrderDesc,
	}
}

const (
	// PriorityHigh is a Priority enum value
	PriorityHigh = "HIGH"

	// PriorityMedium is a Priority enum value
	PriorityMedium = "MEDIUM"

	// PriorityLow is a Priority enum value
	PriorityLow = "LOW"
)

// Priority_Values returns all elements of the Priority enum
func Priority_Values() []string {
	return []string{
		PriorityHigh,
		PriorityMedium,
		PriorityLow,
	}
}

const (
	// QueryConditionComparisonOperatorEquals is a QueryConditionComparisonOperator enum value
	QueryConditionComparisonOperatorEquals = "EQUALS"
)

// QueryConditionComparisonOperator_Values returns all elements of the QueryConditionComparisonOperator enum
func QueryConditionComparisonOperator_Values() []string {
	return []string{
		QueryConditionComparisonOperatorEquals,
	}
}

const (
	// QueryConditionFieldNameResultType is a QueryConditionFieldName enum value
	QueryConditionFieldNameResultType = "RESULT_TYPE"
)

// QueryConditionFieldName_Values returns all elements of the QueryConditionFieldName enum
func QueryConditionFieldName_Values() []string {
	return []string{
		QueryConditionFieldNameResultType,
	}
}

const (
	// QueryResultTypeKnowledgeContent is a QueryResultType enum value
	QueryResultTypeKnowledgeContent = "KNOWLEDGE_CONTENT"

	// QueryResultTypeGenerativeAnswer is a QueryResultType enum value
	QueryResultTypeGenerativeAnswer = "GENERATIVE_ANSWER"
)

// QueryResultType_Values returns all elements of the QueryResultType enum
func QueryResultType_Values() []string {
	return []string{
		QueryResultTypeKnowledgeContent,
		QueryResultTypeGenerativeAnswer,
	}
}

const (
	// QuickResponseFilterOperatorEquals is a QuickResponseFilterOperator enum value
	QuickResponseFilterOperatorEquals = "EQUALS"

	// QuickResponseFilterOperatorPrefix is a QuickResponseFilterOperator enum value
	QuickResponseFilterOperatorPrefix = "PREFIX"
)

// QuickResponseFilterOperator_Values returns all elements of the QuickResponseFilterOperator enum
func QuickResponseFilterOperator_Values() []string {
	return []string{
		QuickResponseFilterOperatorEquals,
		QuickResponseFilterOperatorPrefix,
	}
}

const (
	// QuickResponseQueryOperatorContains is a QuickResponseQueryOperator enum value
	QuickResponseQueryOperatorContains = "CONTAINS"

	// QuickResponseQueryOperatorContainsAndPrefix is a QuickResponseQueryOperator enum value
	QuickResponseQueryOperatorContainsAndPrefix = "CONTAINS_AND_PREFIX"
)

// QuickResponseQueryOperator_Values returns all elements of the QuickResponseQueryOperator enum
func QuickResponseQueryOperator_Values() []string {
	return []string{
		QuickResponseQueryOperatorContains,
		QuickResponseQueryOperatorContainsAndPrefix,
	}
}

const (
	// QuickResponseStatusCreateInProgress is a QuickResponseStatus enum value
	QuickResponseStatusCreateInProgress = "CREATE_IN_PROGRESS"

	// QuickResponseStatusCreateFailed is a QuickResponseStatus enum value
	QuickResponseStatusCreateFailed = "CREATE_FAILED"

	// QuickResponseStatusCreated is a QuickResponseStatus enum value
	QuickResponseStatusCreated = "CREATED"

	// QuickResponseStatusDeleteInProgress is a QuickResponseStatus enum value
	QuickResponseStatusDeleteInProgress = "DELETE_IN_PROGRESS"

	// QuickResponseStatusDeleteFailed is a QuickResponseStatus enum value
	QuickResponseStatusDeleteFailed = "DELETE_FAILED"

	// QuickResponseStatusDeleted is a QuickResponseStatus enum value
	QuickResponseStatusDeleted = "DELETED"

	// QuickResponseStatusUpdateInProgress is a QuickResponseStatus enum value
	QuickResponseStatusUpdateInProgress = "UPDATE_IN_PROGRESS"

	// QuickResponseStatusUpdateFailed is a QuickResponseStatus enum value
	QuickResponseStatusUpdateFailed = "UPDATE_FAILED"
)

// QuickResponseStatus_Values returns all elements of the QuickResponseStatus enum
func QuickResponseStatus_Values() []string {
	return []string{
		QuickResponseStatusCreateInProgress,
		QuickResponseStatusCreateFailed,
		QuickResponseStatusCreated,
		QuickResponseStatusDeleteInProgress,
		QuickResponseStatusDeleteFailed,
		QuickResponseStatusDeleted,
		QuickResponseStatusUpdateInProgress,
		QuickResponseStatusUpdateFailed,
	}
}

const (
	// RecommendationSourceTypeIssueDetection is a RecommendationSourceType enum value
	RecommendationSourceTypeIssueDetection = "ISSUE_DETECTION"

	// RecommendationSourceTypeRuleEvaluation is a RecommendationSourceType enum value
	RecommendationSourceTypeRuleEvaluation = "RULE_EVALUATION"

	// RecommendationSourceTypeOther is a RecommendationSourceType enum value
	RecommendationSourceTypeOther = "OTHER"
)

// RecommendationSourceType_Values returns all elements of the RecommendationSourceType enum
func RecommendationSourceType_Values() []string {
	return []string{
		RecommendationSourceTypeIssueDetection,
		RecommendationSourceTypeRuleEvaluation,
		RecommendationSourceTypeOther,
	}
}

const (
	// RecommendationTriggerTypeQuery is a RecommendationTriggerType enum value
	RecommendationTriggerTypeQuery = "QUERY"

	// RecommendationTriggerTypeGenerative is a RecommendationTriggerType enum value
	RecommendationTriggerTypeGenerative = "GENERATIVE"
)

// RecommendationTriggerType_Values returns all elements of the RecommendationTriggerType enum
func RecommendationTriggerType_Values() []string {
	return []string{
		RecommendationTriggerTypeQuery,
		RecommendationTriggerTypeGenerative,
	}
}

const (
	// RecommendationTypeKnowledgeContent is a RecommendationType enum value
	RecommendationTypeKnowledgeContent = "KNOWLEDGE_CONTENT"

	// RecommendationTypeGenerativeResponse is a RecommendationType enum value
	RecommendationTypeGenerativeResponse = "GENERATIVE_RESPONSE"

	// RecommendationTypeGenerativeAnswer is a RecommendationType enum value
	RecommendationTypeGenerativeAnswer = "GENERATIVE_ANSWER"
)

// RecommendationType_Values returns all elements of the RecommendationType enum
func RecommendationType_Values() []string {
	return []string{
		RecommendationTypeKnowledgeContent,
		RecommendationTypeGenerativeResponse,
		RecommendationTypeGenerativeAnswer,
	}
}

const (
	// RelevanceHelpful is a Relevance enum value
	RelevanceHelpful = "HELPFUL"

	// RelevanceNotHelpful is a Relevance enum value
	RelevanceNotHelpful = "NOT_HELPFUL"
)

// Relevance_Values returns all elements of the Relevance enum
func Relevance_Values() []string {
	return []string{
		RelevanceHelpful,
		RelevanceNotHelpful,
	}
}

const (
	// RelevanceLevelHigh is a RelevanceLevel enum value
	RelevanceLevelHigh = "HIGH"

	// RelevanceLevelMedium is a RelevanceLevel enum value
	RelevanceLevelMedium = "MEDIUM"

	// RelevanceLevelLow is a RelevanceLevel enum value
	RelevanceLevelLow = "LOW"
)

// RelevanceLevel_Values returns all elements of the RelevanceLevel enum
func RelevanceLevel_Values() []string {
	return []string{
		RelevanceLevelHigh,
		RelevanceLevelMedium,
		RelevanceLevelLow,
	}
}

const (
	// SourceContentTypeKnowledgeContent is a SourceContentType enum value
	SourceContentTypeKnowledgeContent = "KNOWLEDGE_CONTENT"
)

// SourceContentType_Values returns all elements of the SourceContentType enum
func SourceContentType_Values() []string {
	return []string{
		SourceContentTypeKnowledgeContent,
	}
}

const (
	// TargetTypeRecommendation is a TargetType enum value
	TargetTypeRecommendation = "RECOMMENDATION"

	// TargetTypeResult is a TargetType enum value
	TargetTypeResult = "RESULT"
)

// TargetType_Values returns all elements of the TargetType enum
func TargetType_Values() []string {
	return []string{
		TargetTypeRecommendation,
		TargetTypeResult,
	}
}
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors